fork download
  1. public class Main {
  2. public static void println(String s)
  3. {
  4. System.out.println(s);
  5. }
  6. public static java.util.Scanner myScanner;
  7. static {
  8. myScanner = new java.util.Scanner(System.in);
  9. }
  10. public static String readLine()
  11. {
  12. return myScanner.nextLine().trim();
  13. }
  14. public static String handToString(int hand)
  15. {
  16. switch (hand)
  17. {
  18. case 0: return "グー";
  19. case 1: return "チョキ";
  20. case 2: return "パー";
  21. }
  22. return "無効";
  23. }
  24. public static boolean isValidHand(int hand)
  25. {
  26. return 0 <= hand && hand < 3;
  27. }
  28. public static int inputHand()
  29. {
  30. int myHand;
  31. for (;;) {
  32. println("グーなら0、チョキなら1、パーなら2を入力してください。");
  33. String myHandStr = readLine();
  34. myHand = -1;
  35. try {
  36. myHand = Integer.parseInt(myHandStr);
  37. } catch (java.lang.NumberFormatException e)
  38. {}
  39. if (isValidHand(myHand)) break;
  40. println("入力が無効です。再入力して下さい。");
  41. }
  42. return myHand;
  43. }
  44.  
  45.  
  46. public static void main(String[] args) {
  47.  
  48. println("2人でじゃんけんをします。");
  49.  
  50. String myName = "あなた";
  51. String cpuName = "コンピュータ";
  52.  
  53. boolean retry = true;
  54. do {
  55. int myHand = inputHand();
  56. int cpuHand = new java.util.Random().nextInt(3);
  57.  
  58. println(myName+"の手は"+handToString(myHand)+"です。");
  59. println(cpuName+"の手は"+handToString(cpuHand)+"です。");
  60.  
  61. if (myHand == cpuHand)
  62. println("あいこでした。もう一度やります。");
  63.  
  64. else if ((cpuHand - myHand + 3) % 3 == 1) {
  65. println(myName+"の勝ちです。");
  66. retry = false;
  67. }
  68. else {
  69. println("残念ながら"+cpuName+"の勝ちです。");
  70. retry = false;
  71. }
  72.  
  73. } while (retry);
  74. }
  75. }
  76.  
Success #stdin #stdout 0.07s 4386816KB
stdin
あ
  1 
2
0
stdout
2人でじゃんけんをします。
グーなら0、チョキなら1、パーなら2を入力してください。
入力が無効です。再入力して下さい。
グーなら0、チョキなら1、パーなら2を入力してください。
あなたの手はチョキです。
コンピュータの手はパーです。
あなたの勝ちです。