public class Main {
public static void main
(String[] args
) { System.
out.
println("コンピュータ同士でジャンケンをします。対戦人数を入力して下さい(2人以上20人以内)"); int numOfCpu
= new java.
util.
Scanner(System.
in).
nextInt(); if (numOfCpu<2 || numOfCpu>20) { // 後に改良
System.
out.
println("指定された人数を入力して下さい"); }
for (int i=0; i<numOfCpu; i++) {
cpuNames[i] = "CPU#"+i;
}
// for (int i=0; i<numOfCpu; i++) {
// System.out.println(cpuNames[i]);
// }
boolean[] survival = new boolean[numOfCpu];
for (int i=0; i<numOfCpu; i++) {
survival[i] = true;
}
int[] cpuHands = new int[numOfCpu];
int counter_0; int counter_1; int counter_2;
int x;
// 0はグー、1はチョキ、2はパーをそれぞれ表すものとする
do {
for (int i=0; i<numOfCpu; i++) {
cpuHands
[i
] = new java.
util.
Random().
nextInt(3); }
counter_0 = 0; counter_1 = 0; counter_2 = 0;
for(int i=0; i<numOfCpu; i++) {
if(cpuHands[i]==0) {
counter_0 += 1;
} else if(cpuHands[i]==1) {
counter_1 += 1;
} else { // cpuHands[i]==2 の時
counter_2 += 1;
}
}
System.
out.
println("グーの人数は"+counter_0
+"、 チョキの人数は"+counter_1
+"、 パーの人数は"+counter_2
); x = 0;
if (counter_0 > 0) x += 1;
if (counter_1 > 0) x += 1;
if (counter_2 > 0) x += 1;
} while(x==1 || x==3); // あいこの時
// 以降はx==2という条件をクリアしている
if (counter_0 > 0 && counter_1 > 0) {
for (int i=0; i<numOfCpu; i++) {
if (cpuHands[i]==1) {
survival[i] = false; // チョキは敗者
}
}
System.
out.
println("この時点で残っているのは"); for (int i=0; i<numOfCpu; i++) {
if (survival[i]==true) {
System.
out.
println(cpuNames
[i
]); }
}
} else if (counter_1 > 0 && counter_2 > 0) {
for (int i=0; i<numOfCpu; i++) {
if (cpuHands[i]==2) {
survival[i] = false; // パーは敗者
}
}
System.
out.
println("この時点で残っているのは"); for (int i=0; i<numOfCpu; i++) {
if (survival[i]==true) {
System.
out.
println(cpuNames
[i
]); }
}
} else { // counter_2 > 0 && counter_0 > 0 の時
for (int i=0; i<numOfCpu; i++) {
if (cpuHands[i]==0) {
survival[i] = false; // グーは敗者
}
}
System.
out.
println("この時点で残っているのは"); for (int i=0; i<numOfCpu; i++) {
if (survival[i]==true) {
System.
out.
println(cpuNames
[i
]); }
}
}
}
}