fork download
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6. public static void main(String[] args) {
  7.  
  8. Scanner scan = new Scanner(System.in);
  9. String yourHandStr;
  10. int yourHandNo = 3; // とりあえず3
  11. int yourHandMem = 3;
  12.  
  13. Random rand = new Random();
  14. int cpuHandNo = 3;
  15.  
  16. String gameLoopStr;
  17. boolean isGameLoop = false;
  18. int loopNo = 1; // 繰り返し回数
  19. int logicPattern = 1; // cpuの思考パターン
  20.  
  21. int winCount = 0;
  22. int drawCount = 0;
  23. int loseCount = 0;
  24.  
  25. do {
  26. System.out.println("これから(また)じゃんけんをします。グー・チョキ・パーのいずれかを入力して下さい。");
  27. yourHandStr = scan.nextLine();
  28. if (yourHandStr.equals("グー")) {
  29. yourHandNo = 0;
  30. } else if (yourHandStr.equals("チョキ")) {
  31. yourHandNo = 1;
  32. } else if (yourHandStr.equals("パー")) {
  33. yourHandNo = 2;
  34. } else {
  35. System.out.println("文字列を正しく入力して下さい。終了します。");
  36. System.exit(1);
  37. }
  38.  
  39. if (loopNo == 1) {
  40. cpuHandNo = rand.nextInt(3);
  41. } else {
  42. logicPattern = rand.nextInt(4) + 1;
  43. switch (logicPattern) {
  44. case 1:
  45. cpuHandNo = rand.nextInt(3); // 考えなし
  46. break;
  47. case 2: // 相手より強い手出したがり
  48. if (yourHandMem == 0) {
  49. cpuHandNo = 2;
  50. } else if (yourHandMem == 1) {
  51. cpuHandNo = 0;
  52. } else {
  53. cpuHandNo = 1;
  54. }
  55. break;
  56. case 3: // あえて相手より弱い手出したがり
  57. if (yourHandMem == 0) {
  58. cpuHandNo = 1;
  59. } else if (yourHandMem == 1) {
  60. cpuHandNo = 2;
  61. } else {
  62. cpuHandNo = 0;
  63. }
  64. break;
  65. case 4: // 相手と同じ手出したがり
  66. if (yourHandMem == 0) {
  67. cpuHandNo = 0;
  68. } else if (yourHandMem == 1) {
  69. cpuHandNo = 1;
  70. } else {
  71. cpuHandNo = 2;
  72. }
  73. break;
  74. }
  75. }
  76.  
  77. if (yourHandNo == 0) {
  78. yourHandMem = 0;
  79. } else if (yourHandNo == 1) {
  80. yourHandMem = 1;
  81. } else {
  82. yourHandMem = 2;
  83. }
  84.  
  85. if (yourHandNo == cpuHandNo) {
  86. System.out.println("あいこです。");
  87. drawCount++;
  88. } else if (cpuHandNo - yourHandNo == 1 || yourHandNo - cpuHandNo == 2) {
  89. System.out.println("あなたの勝ちです。");
  90. winCount++;
  91. } else {
  92. System.out.println("CPUの勝ちです。");
  93. loseCount++;
  94. }
  95.  
  96. switch (cpuHandNo) {
  97. case 0:
  98. System.out.println("CPUの手はグーでした。");
  99. break;
  100. case 1:
  101. System.out.println("CPUの手はチョキでした。");
  102. break;
  103. case 2:
  104. System.out.println("CPUの手はパーでした。");
  105. break;
  106. }
  107.  
  108. // System.out.println("logicPatterは" + logicPattern);
  109.  
  110. System.out.println("あなたは" + winCount + "勝" + loseCount + "敗" + drawCount + "引き分け" +"です。");
  111. System.out.println("ジャンケンを続けますか?続ける/やめるを入力して下さい。");
  112. gameLoopStr = scan.nextLine();
  113. if (gameLoopStr.equals("続ける")) {
  114. isGameLoop = true;
  115. } else if (gameLoopStr.equals("やめる")) {
  116. isGameLoop = false;
  117. } else {
  118. System.out.println("文字列を正しく入力して下さい。終了します。");
  119. System.exit(1);
  120. }
  121.  
  122. loopNo++;
  123.  
  124. } while(isGameLoop == true);
  125.  
  126. }
  127.  
  128. }
Success #stdin #stdout 0.09s 2841600KB
stdin
グー
続ける
パー
やめる
stdout
これから(また)じゃんけんをします。グー・チョキ・パーのいずれかを入力して下さい。
CPUの勝ちです。
CPUの手はパーでした。
あなたは0勝1敗0引き分けです。
ジャンケンを続けますか?続ける/やめるを入力して下さい。
これから(また)じゃんけんをします。グー・チョキ・パーのいずれかを入力して下さい。
あなたの勝ちです。
CPUの手はグーでした。
あなたは1勝1敗0引き分けです。
ジャンケンを続けますか?続ける/やめるを入力して下さい。