fork download
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. Random rand = new Random();
  8.  
  9. System.out.println("コンピュータ同士でじゃんけんをします。");
  10. System.out.println("対戦するコンピュータの人数を入力して下さい。(2人以上8人以内)");
  11. String cpuNumStr = scan.nextLine();
  12. System.out.println("");
  13. int cpuNum = 0;
  14. if (cpuNumStr.matches("[2-8]"))
  15. cpuNum = Integer.parseInt(cpuNumStr);
  16. else {
  17. System.out.println("2から8までの数字を入力して下さい。終了します。");
  18. System.exit(1);
  19. }
  20.  
  21. int cpuHands[] = new int[cpuNum];
  22. int hands[] = new int[3]; // hands[0]はグー、hands[1]はチョキ、hands[2]はパーの人数
  23. int numOfSuv = cpuNum; // 勝ち残りの人数
  24.  
  25. for (int i=0; i<cpuHands.length; i++)
  26. cpuHands[i] = rand.nextInt(3);
  27.  
  28. cpuHandsDisp(cpuHands, hands);
  29. numOfSuv = winnersDisp(cpuHands, hands, numOfSuv);
  30.  
  31. while (numOfSuv!=1) {
  32. hands[0] = 0;
  33. hands[1] = 0;
  34. hands[2] = 0;
  35.  
  36. for (int i=0; i<cpuHands.length; i++) {
  37. if (cpuHands[i]!=3)
  38. cpuHands[i] = rand.nextInt(3);
  39. }
  40.  
  41. cpuHandsDisp(cpuHands, hands);
  42. numOfSuv = winnersDisp(cpuHands, hands, numOfSuv);
  43. }
  44. }
  45.  
  46. public static void cpuHandsDisp(int[] cpuHands, int[] hands) {
  47. for (int i=0; i<cpuHands.length; i++) {
  48. if (cpuHands[i]==3) {
  49. } // 敗者非表示
  50. else if (cpuHands[i]==0) {
  51. System.out.println("コンピュータ"+i+"はグーです。");
  52. hands[0]++;
  53. }
  54. else if (cpuHands[i]==1) {
  55. System.out.println("コンピュータ"+i+"はチョキです。");
  56. hands[1]++;
  57. }
  58. else { // cpuHands[i]==2
  59. System.out.println("コンピュータ"+i+"はパーです。");
  60. hands[2]++;
  61. }
  62. }
  63. }
  64.  
  65. public static int winnersDisp(int cpuHands[], int[] hands, int numOfSuv) {
  66. if ((hands[0]>=1 && hands[1]>=1 && hands[2]>=1) || hands[1]+hands[2]==0 || hands[2]+hands[0]==0 || hands[0]+hands[1]==0)
  67. System.out.println("あいこです。"+"\n");
  68. else if (hands[2]==0) { // グーが勝ちの時
  69. System.out.print("勝ったのは、");
  70. for (int i=0; i<cpuHands.length; i++) {
  71. if (cpuHands[i]==0)
  72. System.out.print("コンピュータ"+i+" ");
  73. else if (cpuHands[i]==3) {
  74. } // 敗者除外中
  75. else {
  76. cpuHands[i]=3;
  77. numOfSuv--;
  78. }
  79. }
  80. System.out.println("です。"+"\n");
  81. }
  82. else if (hands[0]==0) { // チョキが勝ちの時
  83. System.out.print("勝ったのは、");
  84. for (int i=0; i<cpuHands.length; i++) {
  85. if (cpuHands[i]==1)
  86. System.out.print("コンピュータ"+i+" ");
  87. else if (cpuHands[i]==3) {
  88. }
  89. else {
  90. cpuHands[i]=3;
  91. numOfSuv--;
  92. }
  93. }
  94. System.out.println("です。"+"\n");
  95. }
  96. else { // パーが勝ちの時
  97. System.out.print("勝ったのは、");
  98. for (int i=0; i<cpuHands.length; i++) {
  99. if (cpuHands[i]==2)
  100. System.out.print("コンピュータ"+i+" ");
  101. else if (cpuHands[i]==3) {
  102. }
  103. else {
  104. cpuHands[i]=3;
  105. numOfSuv--;
  106. }
  107. }
  108. System.out.println("です。"+"\n");
  109. }
  110. if (numOfSuv==1) {
  111. System.out.println("最終勝者が確定したので終了します。");
  112. System.exit(0);
  113. }
  114. return numOfSuv;
  115. }
  116. }
Success #stdin #stdout 0.07s 4386816KB
stdin
7
stdout
コンピュータ同士でじゃんけんをします。
対戦するコンピュータの人数を入力して下さい。(2人以上8人以内)

コンピュータ0はパーです。
コンピュータ1はチョキです。
コンピュータ2はチョキです。
コンピュータ3はチョキです。
コンピュータ4はグーです。
コンピュータ5はチョキです。
コンピュータ6はパーです。
あいこです。

コンピュータ0はチョキです。
コンピュータ1はパーです。
コンピュータ2はグーです。
コンピュータ3はグーです。
コンピュータ4はチョキです。
コンピュータ5はグーです。
コンピュータ6はチョキです。
あいこです。

コンピュータ0はグーです。
コンピュータ1はグーです。
コンピュータ2はチョキです。
コンピュータ3はチョキです。
コンピュータ4はパーです。
コンピュータ5はパーです。
コンピュータ6はパーです。
あいこです。

コンピュータ0はパーです。
コンピュータ1はチョキです。
コンピュータ2はグーです。
コンピュータ3はグーです。
コンピュータ4はチョキです。
コンピュータ5はチョキです。
コンピュータ6はチョキです。
あいこです。

コンピュータ0はパーです。
コンピュータ1はチョキです。
コンピュータ2はパーです。
コンピュータ3はチョキです。
コンピュータ4はチョキです。
コンピュータ5はグーです。
コンピュータ6はグーです。
あいこです。

コンピュータ0はグーです。
コンピュータ1はパーです。
コンピュータ2はチョキです。
コンピュータ3はグーです。
コンピュータ4はグーです。
コンピュータ5はチョキです。
コンピュータ6はグーです。
あいこです。

コンピュータ0はパーです。
コンピュータ1はパーです。
コンピュータ2はパーです。
コンピュータ3はグーです。
コンピュータ4はグーです。
コンピュータ5はチョキです。
コンピュータ6はチョキです。
あいこです。

コンピュータ0はパーです。
コンピュータ1はチョキです。
コンピュータ2はチョキです。
コンピュータ3はチョキです。
コンピュータ4はチョキです。
コンピュータ5はグーです。
コンピュータ6はチョキです。
あいこです。

コンピュータ0はパーです。
コンピュータ1はグーです。
コンピュータ2はグーです。
コンピュータ3はチョキです。
コンピュータ4はグーです。
コンピュータ5はチョキです。
コンピュータ6はパーです。
あいこです。

コンピュータ0はパーです。
コンピュータ1はパーです。
コンピュータ2はパーです。
コンピュータ3はグーです。
コンピュータ4はグーです。
コンピュータ5はパーです。
コンピュータ6はグーです。
勝ったのは、コンピュータ0 コンピュータ1 コンピュータ2 コンピュータ5 です。

コンピュータ0はグーです。
コンピュータ1はグーです。
コンピュータ2はグーです。
コンピュータ5はパーです。
勝ったのは、コンピュータ5 です。

最終勝者が確定したので終了します。