fork download
  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. System.out.println("コンピュータ同士でジャンケンをします。対戦人数を入力して下さい(2人以上20人以内)");
  5. int numOfCpu = new java.util.Scanner(System.in).nextInt();
  6. if (numOfCpu<2 || numOfCpu>20) { // 後に改良
  7. System.out.println("指定された人数を入力して下さい");
  8. System.exit(1);
  9. }
  10. String[] cpuNames = new String[numOfCpu];
  11. for (int i=0; i<numOfCpu; i++) {
  12. cpuNames[i] = "CPU#"+i;
  13. }
  14. // for (int i=0; i<numOfCpu; i++) {
  15. // System.out.println(cpuNames[i]);
  16. // }
  17. boolean[] survival = new boolean[numOfCpu];
  18. for (int i=0; i<numOfCpu; i++) {
  19. survival[i] = true;
  20. }
  21.  
  22. int[] cpuHands = new int[numOfCpu];
  23. int counter_0; int counter_1; int counter_2;
  24. int x;
  25.  
  26. // 0はグー、1はチョキ、2はパーをそれぞれ表すものとする
  27. do {
  28. for (int i=0; i<numOfCpu; i++) {
  29. cpuHands[i] = new java.util.Random().nextInt(3);
  30. }
  31. counter_0 = 0; counter_1 = 0; counter_2 = 0;
  32. for(int i=0; i<numOfCpu; i++) {
  33. if(cpuHands[i]==0) {
  34. counter_0 += 1;
  35. } else if(cpuHands[i]==1) {
  36. counter_1 += 1;
  37. } else { // cpuHands[i]==2 の時
  38. counter_2 += 1;
  39. }
  40. }
  41. System.out.println("グーの人数は"+counter_0+"、 チョキの人数は"+counter_1+"、 パーの人数は"+counter_2);
  42. x = 0;
  43. if (counter_0 > 0) x += 1;
  44. if (counter_1 > 0) x += 1;
  45. if (counter_2 > 0) x += 1;
  46. } while(x==1 || x==3); // あいこの時
  47.  
  48. // 以降はx==2という条件をクリアしている
  49. if (counter_0 > 0 && counter_1 > 0) {
  50. for (int i=0; i<numOfCpu; i++) {
  51. if (cpuHands[i]==1) {
  52. survival[i] = false; // チョキは敗者
  53. }
  54. }
  55. System.out.println("この時点で残っているのは");
  56. for (int i=0; i<numOfCpu; i++) {
  57. if (survival[i]==true) {
  58. System.out.println(cpuNames[i]);
  59. }
  60. }
  61.  
  62. } else if (counter_1 > 0 && counter_2 > 0) {
  63. for (int i=0; i<numOfCpu; i++) {
  64. if (cpuHands[i]==2) {
  65. survival[i] = false; // パーは敗者
  66. }
  67. }
  68. System.out.println("この時点で残っているのは");
  69. for (int i=0; i<numOfCpu; i++) {
  70. if (survival[i]==true) {
  71. System.out.println(cpuNames[i]);
  72. }
  73. }
  74.  
  75. } else { // counter_2 > 0 && counter_0 > 0 の時
  76. for (int i=0; i<numOfCpu; i++) {
  77. if (cpuHands[i]==0) {
  78. survival[i] = false; // グーは敗者
  79. }
  80. }
  81. System.out.println("この時点で残っているのは");
  82. for (int i=0; i<numOfCpu; i++) {
  83. if (survival[i]==true) {
  84. System.out.println(cpuNames[i]);
  85. }
  86. }
  87. }
  88. }
  89. }
  90.  
Success #stdin #stdout 0.07s 4386816KB
stdin
10
stdout
コンピュータ同士でジャンケンをします。対戦人数を入力して下さい(2人以上20人以内)
グーの人数は2、 チョキの人数は4、 パーの人数は4
グーの人数は6、 チョキの人数は3、 パーの人数は1
グーの人数は4、 チョキの人数は4、 パーの人数は2
グーの人数は2、 チョキの人数は4、 パーの人数は4
グーの人数は5、 チョキの人数は1、 パーの人数は4
グーの人数は4、 チョキの人数は4、 パーの人数は2
グーの人数は5、 チョキの人数は3、 パーの人数は2
グーの人数は1、 チョキの人数は4、 パーの人数は5
グーの人数は6、 チョキの人数は3、 パーの人数は1
グーの人数は4、 チョキの人数は3、 パーの人数は3
グーの人数は5、 チョキの人数は3、 パーの人数は2
グーの人数は0、 チョキの人数は9、 パーの人数は1
この時点で残っているのは
CPU#0
CPU#1
CPU#2
CPU#4
CPU#5
CPU#6
CPU#7
CPU#8
CPU#9