fork(1) download
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4.  
  5. public class Main {
  6. Scanner scan = new Scanner(System.in);
  7.  
  8. public static void main(String[] args) {
  9. Main m = new Main();
  10. m.doJanken();
  11. }
  12.  
  13. private void doJanken(){
  14. System.out.println("コンピュータとじゃんけんをします。");
  15. System.out.println("グー、チョキ、パーのいずれかをカタカナで入力して下さい。");
  16.  
  17. int yourHand = getOnesHands();
  18. int cpHand = new Random().nextInt(3);
  19. doCpHands(cpHand);
  20. judg(yourHand, cpHand);
  21.  
  22. ask();
  23. }
  24.  
  25. private void judg(int handA, int handB){
  26. int result = (handA - handB + 3) % 3;
  27. if (result == 0) {
  28. System.out.println("あいこです。");
  29. } else if (result == 2) {
  30. System.out.println("あなたの勝ちです!");
  31. } else {
  32. System.out.println("コンピュータの勝ちです。");
  33. }
  34. }
  35.  
  36. private void ask(){
  37. System.out.println("もう一度やりますか?はいかいいえを入力して下さい。");
  38. String answer = scan.nextLine();
  39.  
  40. if (answer.equals("はい")){
  41. doJanken();
  42. } else if (!answer.equals("いいえ")){
  43. System.out.println("はいかいいえのいずれかを入力して下さい。終了します。");
  44. }
  45.  
  46. System.exit(0);
  47. }
  48.  
  49. private int getOnesHands(){
  50. String yourHand = scan.nextLine();
  51. HandsEnum handsEnum = HandsEnum.getEnumByName(yourHand);
  52.  
  53. if(handsEnum == null){
  54. System.out.println("グー、チョキ、パーのいずれかを入力して下さい。終了します。");
  55. System.exit(1);
  56. }
  57.  
  58. return handsEnum.getNum();
  59. }
  60.  
  61. private void doCpHands(int num){
  62. String cpHand = HandsEnum.getEnumByNum(num).toString();
  63. System.out.println("コンピュータは" + cpHand + "です。");
  64. }
  65.  
  66. private enum HandsEnum {
  67. GOO("グー", 0),
  68. TYOKI("チョキ", 1),
  69. PAA("パー", 2),
  70. ;
  71.  
  72. private String name;
  73. private int num;
  74.  
  75. private HandsEnum(String name, int num) {
  76. this.name = name;
  77. this.num = num;
  78. }
  79.  
  80. public String toString() {
  81. return name;
  82. }
  83.  
  84. public int getNum() {
  85. return num;
  86. }
  87.  
  88. public static HandsEnum getEnumByName(String name) {
  89. for (HandsEnum handsEnum : HandsEnum.values()) {
  90. if (handsEnum.toString().equals(name)) {
  91. return handsEnum;
  92. }
  93. }
  94. return null;
  95. }
  96.  
  97. public static HandsEnum getEnumByNum(int num) {
  98. for (HandsEnum handsEnum : HandsEnum.values()) {
  99. if (handsEnum.getNum() == num) {
  100. return handsEnum;
  101. }
  102. }
  103. return null;
  104. }
  105. }
  106. }
  107.  
Success #stdin #stdout 0.06s 4386816KB
stdin
パー
はい
グー
はい
チョキ
あばばばばば
stdout
コンピュータとじゃんけんをします。
グー、チョキ、パーのいずれかをカタカナで入力して下さい。
コンピュータはチョキです。
コンピュータの勝ちです。
もう一度やりますか?はいかいいえを入力して下さい。
コンピュータとじゃんけんをします。
グー、チョキ、パーのいずれかをカタカナで入力して下さい。
コンピュータはグーです。
あいこです。
もう一度やりますか?はいかいいえを入力して下さい。
コンピュータとじゃんけんをします。
グー、チョキ、パーのいずれかをカタカナで入力して下さい。
コンピュータはグーです。
コンピュータの勝ちです。
もう一度やりますか?はいかいいえを入力して下さい。
はいかいいえのいずれかを入力して下さい。終了します。