package ZuoYe;
import java.util.Scanner;
/**
* @author zyh
* @version 1.0
* @ClassName SaiZhu
* Description:
* @date 2023/11/20 10:13
// */
public class SaiZhu {
public static void main(String[] args) {
// 选手名
String st[]=new String[32];
// 选手分数
int a[]=new int[32];
// 对手分数
int b[]=new int[32];
// 选手对手
int ab[][]=new int[32][8];
Scanner s=new Scanner(System.in);
for(int i=1;i<33;i++){
System.out.println("请输入"+i+"号选手的名字:");
st[i-1]=s.next();
}
// 第一轮比赛对阵表0 01 1 23 2 45 3 67红方先走
for(int k=1;k<=7;k++) {
System.out.println("第" + k + "轮比赛对阵表!");
for (int i = 0; i < 16; i++) {
System.out.println((i + 1) + "组 红方:" + st[i * 2] +"\t"+ a[i*2]+"分 对手"+b[i*2]+"分 ------------"
+ (i + 1) + "组 黑方:" + st[i * 2 + 1]+"\t"+a[i*2+1]+"分!对手"+b[i*2+1]+"分");
}
// 第一轮比赛结束
for (int i = 0; i < 16; i++) {
while (true) {
System.out.println((i + 1) + "组红方选手" + st[i * 2] + "------------" + (i + 1) + "组黑方选手" + st[i * 2 + 1]);
System.out.println("输入获胜方--1红方 2黑方 3和棋:");
int n = s.nextInt();
if (n == 1) {
System.out.println((i + 1) + "组红方选手" + st[i * 2] + "获胜!");
a[i * 2] += 2;
// 标记对手号
ab[i * 2][k] = i * 2 + 1;
ab[i * 2 + 1][k] = i * 2;
System.out.println(st[i * 2] + "获胜现得分!" + a[i * 2] + "**||**" + st[i * 2 + 1] + "失败现得分" + a[i * 2 + 1]);
break;
} else if (n == 2) {
System.out.println((i + 1) + "组黑方选手" + st[i * 2 + 1] + "获胜!");
a[i * 2 + 1] += 2;
ab[i * 2][k] = i * 2 + 1;
ab[i * 2 + 1][k] = i * 2;
System.out.println(st[i * 2] + "失败现得分!" + a[i * 2] + "**||**" + st[i * 2 + 1] + "获胜现得分" + a[i * 2 + 1]);
break;
} else if (n == 3) {
System.out.println("和棋!");
a[i * 2] += 1;
a[i * 2 + 1] += 1;
ab[i * 2][k] = i * 2 + 1;
ab[i * 2 + 1][k] = i * 2;
System.out.println(st[i * 2] + "和棋现得分!" + a[i * 2] + "**||**" + st[i * 2 + 1] + "和棋现得分" + a[i * 2 + 1]);
break;
} else {
System.out.println("输入错误!重新输入:");
}
}
//
}
// 对手分
for(int i=0;i<32;i++){
for(int j=1;j<=k;j++)b[i]+=a[ab[i][j]];
}
// 全部红方排序
for (int i = 1; i < 16; i++) {
for (int j = 0; j < 30; j += 2) {
if (a[j] < a[j + 2]||a[j]==a[j+2]&&b[j]<b[j+2]) {
int n = a[j];String ming=st[j];int m[]=new int[8];m=ab[j];
a[j] = a[j + 2];st[j]=st[j+2];ab[j]=ab[j+2];
a[j + 2] = n;st[j+2]=ming;ab[j+2]=m;
}
}
// 全部黑方排序
for (int j = 1; j < 30; j += 2) {
if (a[j] < a[j + 2]||(a[j]==a[j+2]&&b[j]<b[j+2])) {
int n = a[j];String ming=st[j];int m[]=new int[8];m=ab[j];
a[j] = a[j + 2];st[j]=st[j+2];ab[j]=ab[j+2];
a[j + 2] = n;st[j+2]=ming;ab[j+2]=m;
}
}
}
// 黑红交换
for (int j = 0; j < 16; j++) {
int n = a[j * 2];
a[j * 2] = a[j * 2 + 1];
a[j * 2 + 1] =n;
}
}
// 对手分计算
for(int i=0;i<32;i++){
for(int j=1;j<8;j++)b[i]+=a[ab[i][j]];
}
// 最后总排序
for(int i=0;i<31;i++){
for(int j=0;j<31-i;j++){
if(a[j]<a[j+1]||a[j]==a[j+1]&&b[j]<b[j+1]){
int n=a[j];a[j]=a[j+1];a[j+1]=n;
}
}
}
//第七轮比赛结果排名
for(int i=0;i<32;i++){
System.out.println("第"+(i+1)+"名"+st[i]+" 获得:"+a[i]+"分 "+"对手分"+b[i]);
}
}
}
象棋比赛助手
于 2023-11-28 16:35:04 首次发布