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("対戦するコンピュータの人数を入力して下さい。(9人以内)");
  11. String cpuNumStr = scan.nextLine();
  12. int cpuNum = 0;
  13. if (cpuNumStr.matches("[1-9]"))
  14. cpuNum = Integer.parseInt(cpuNumStr);
  15. else {
  16. System.out.println("1から9までの数字を入力して下さい。終了します。");
  17. System.exit(1);
  18. }
  19.  
  20. int cpuHands[] = new int[cpuNum];
  21.  
  22. int gu = 0;
  23. int tyoki = 0;
  24. int pa = 0;
  25. int numOfSuv = 1+cpuNum;
  26.  
  27. System.out.println("グー、チョキ、パーのいずれかをカタカナで入力して下さい。");
  28. String yourHand = scan.nextLine();
  29. int yourHandNum = 3;
  30. if (yourHand.equals("グー")) {
  31. yourHandNum = 0;
  32. gu++;
  33. }
  34. else if (yourHand.equals("チョキ")) {
  35. yourHandNum = 1;
  36. tyoki++;
  37. }
  38. else if (yourHand.equals("パー")) {
  39. yourHandNum = 2;
  40. pa++;
  41. }
  42. else {
  43. System.out.println("グー、チョキ、パーのいずれかをカタカナ入力して下さい。終了します。");
  44. System.exit(2);
  45. }
  46.  
  47. for (int i=0; i<cpuHands.length; i++)
  48. cpuHands[i] = rand.nextInt(3);
  49.  
  50. System.out.println("あなたは"+yourHand+"です。");
  51. for (int i=0; i<cpuHands.length; i++) {
  52. if (cpuHands[i]==0) {
  53. System.out.println("コンピュータ"+i+"はグーです。");
  54. gu++;
  55. }
  56. else if (cpuHands[i]==1) {
  57. System.out.println("コンピュータ"+i+"はチョキです。");
  58. tyoki++;
  59. }
  60. else { // cpuHands[i]==2
  61. System.out.println("コンピュータ"+i+"はパーです。");
  62. pa++;
  63. }
  64. }
  65.  
  66. if ((gu>=1 && tyoki>=1 && pa>=1) || tyoki+pa==0 || pa+gu==0 || gu+tyoki==0)
  67. System.out.println("あいこです。"+"\n");
  68. else if (pa==0) { // グーが勝ちの時
  69. System.out.print("勝ったのは、");
  70. if (yourHandNum==0)
  71. System.out.print("あなた"+" ");
  72. else {
  73. yourHandNum=3; // 離脱
  74. numOfSuv--;
  75. }
  76. for (int i=0; i<cpuHands.length;i++) {
  77. if (cpuHands[i]==0)
  78. System.out.print("コンピュータ"+i+" ");
  79. else {
  80. cpuHands[i]=3;
  81. numOfSuv--;
  82. }
  83. }
  84. System.out.println("です。"+"\n");
  85. }
  86. else if (gu==0) { // チョキが勝ちの時
  87. System.out.print("勝ったのは、");
  88. if (yourHandNum==1)
  89. System.out.print("あなた"+" ");
  90. else {
  91. yourHandNum=3;
  92. numOfSuv--;
  93. }
  94. for (int i=0; i<cpuHands.length;i++) {
  95. if (cpuHands[i]==1)
  96. System.out.print("コンピュータ"+i+" ");
  97. else {
  98. cpuHands[i]=3;
  99. numOfSuv--;
  100. }
  101. }
  102. System.out.println("です。"+"\n");
  103. }
  104. else { // パーが勝ちの時
  105. System.out.print("勝ったのは、");
  106. if (yourHandNum==2)
  107. System.out.print("あなた"+" ");
  108. else {
  109. yourHandNum=3;
  110. numOfSuv--;
  111. }
  112. for (int i=0; i<cpuHands.length;i++) {
  113. if (cpuHands[i]==2)
  114. System.out.print("コンピュータ"+i+" ");
  115. else {
  116. cpuHands[i]=3;
  117. numOfSuv--;
  118. }
  119. }
  120. System.out.println("です。"+"\n");
  121. }
  122. if (numOfSuv==1) {
  123. System.out.println("最終勝者が確定したので終了します。");
  124. System.exit(0);
  125. }
  126.  
  127.  
  128.  
  129. while (numOfSuv!=1) {
  130. gu = 0;
  131. tyoki = 0;
  132. pa = 0;
  133. if (yourHandNum!=3) {
  134. System.out.println("グー、チョキ、パーのいずれかをカタカナで入力して下さい。");
  135. yourHand = scan.nextLine();
  136. yourHandNum = 3;
  137. if (yourHand.equals("グー")) {
  138. yourHandNum = 0;
  139. gu++;
  140. }
  141. else if (yourHand.equals("チョキ")) {
  142. yourHandNum = 1;
  143. tyoki++;
  144. }
  145. else if (yourHand.equals("パー")) {
  146. yourHandNum = 2;
  147. pa++;
  148. }
  149. else {
  150. System.out.println("グー、チョキ、パーのいずれかをカタカナ入力して下さい。終了します。");
  151. System.exit(2);
  152. }
  153. System.out.println("あなたは"+yourHand+"です。");
  154. }
  155.  
  156.  
  157. for (int i=0; i<cpuHands.length; i++) {
  158. if (cpuHands[i]!=3)
  159. cpuHands[i] = rand.nextInt(3);
  160. }
  161.  
  162. for (int i=0; i<cpuHands.length; i++) {
  163. if (cpuHands[i]==0) {
  164. System.out.println("コンピュータ"+i+"はグーです。");
  165. gu++;
  166. }
  167. else if (cpuHands[i]==1) {
  168. System.out.println("コンピュータ"+i+"はチョキです。");
  169. tyoki++;
  170. }
  171. else if (cpuHands[i]==2) {
  172. System.out.println("コンピュータ"+i+"はパーです。");
  173. pa++;
  174. }
  175. }
  176.  
  177. if ((gu>=1 && tyoki>=1 && pa>=1) || tyoki+pa==0 || pa+gu==0 || gu+tyoki==0)
  178. System.out.println("あいこです。"+"\n");
  179. else if (pa==0) { // グーが勝ちの時
  180. System.out.print("勝ったのは、");
  181. if (yourHandNum==0)
  182. System.out.print("あなた"+" ");
  183. else if (yourHandNum==3) {
  184. ;
  185. } else { // 離脱
  186. yourHandNum=3;
  187. numOfSuv--;
  188. }
  189. for (int i=0; i<cpuHands.length;i++) {
  190. if (cpuHands[i]==0)
  191. System.out.print("コンピュータ"+i+" ");
  192. else if (cpuHands[i]==3) {
  193. ;
  194. } else {
  195. cpuHands[i]=3;
  196. numOfSuv--;
  197. }
  198. }
  199. System.out.println("です。"+"\n");
  200. }
  201. else if (gu==0) { // チョキが勝ちの時
  202. System.out.print("勝ったのは、");
  203. if (yourHandNum==1)
  204. System.out.print("あなた"+" ");
  205. else if (yourHandNum==3) {
  206. ;
  207. } else {
  208. yourHandNum=3;
  209. numOfSuv--;
  210. }
  211. for (int i=0; i<cpuHands.length;i++) {
  212. if (cpuHands[i]==1)
  213. System.out.print("コンピュータ"+i+" ");
  214. else if (cpuHands[i]==3) {
  215. ;
  216. } else {
  217. cpuHands[i]=3;
  218. numOfSuv--;
  219. }
  220. }
  221. System.out.println("です。"+"\n");
  222. }
  223. else { // パーが勝ちの時
  224. System.out.print("勝ったのは、");
  225. if (yourHandNum==2)
  226. System.out.print("あなた"+" ");
  227. else if (yourHandNum==3) {
  228. ;
  229. } else {
  230. yourHandNum=3;
  231. numOfSuv--;
  232. }
  233. for (int i=0; i<cpuHands.length;i++) {
  234. if (cpuHands[i]==2)
  235. System.out.print("コンピュータ"+i+" ");
  236. else if (cpuHands[i]==3) {
  237. ;
  238. } else {
  239. cpuHands[i]=3;
  240. numOfSuv--;
  241. }
  242. }
  243. System.out.println("です。"+"\n");
  244. }
  245. if (numOfSuv==1) {
  246. System.out.println("最終勝者が確定したので終了します。");
  247. System.exit(0);
  248. }
  249. }
  250. }
  251. }
Success #stdin #stdout 0.09s 2841600KB
stdin
4
グー
チョキ
パー
グー
チョキ
パー
stdout
コンピュータとじゃんけんをします。
対戦するコンピュータの人数を入力して下さい。(9人以内)
グー、チョキ、パーのいずれかをカタカナで入力して下さい。
あなたはグーです。
コンピュータ0はチョキです。
コンピュータ1はチョキです。
コンピュータ2はチョキです。
コンピュータ3はパーです。
あいこです。

グー、チョキ、パーのいずれかをカタカナで入力して下さい。
あなたはチョキです。
コンピュータ0はグーです。
コンピュータ1はチョキです。
コンピュータ2はチョキです。
コンピュータ3はグーです。
勝ったのは、コンピュータ0 コンピュータ3 です。

コンピュータ0はパーです。
コンピュータ3はパーです。
あいこです。

コンピュータ0はグーです。
コンピュータ3はチョキです。
勝ったのは、コンピュータ0 です。

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