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