fork(1) download
  1. // じゃんけんプログラム コンビュータとじゃんけんをするプログラムです。あいこの場合は再戦します。
  2. // 開発者:34歳うんぬん
  3.  
  4. public class Main {
  5.  
  6. public static void main(String[] args) {
  7.  
  8. System.out.println("2人でじゃんけんをします。");
  9. java.util.Scanner stdin = new java.util.Scanner(System.in);
  10.  
  11. System.out.print("あなたの名前を入力してください。>"); // ここでプレーヤーとコンピュータの名前を決めます。
  12. String myName = stdin.nextLine();
  13. System.out.print("CPUに名前を付けてください。>");
  14. String cpuName = stdin.nextLine();
  15.  
  16. boolean winner = false; // 勝者確定の目印を設定します。
  17. while (winner == false && stdin.hasNextLine()) {
  18.  
  19. System.out.print("グーなら0、チョキなら1、パーなら2を入力してください。>");
  20.  
  21. String myHandStr = stdin.nextLine(); // 何度もnewしてんじゃねーよハゲ(^q^)
  22. // 入力された手を文字列で受けます。
  23.  
  24. if (myHandStr.matches("[0-2]") == false) { // パターンマッチングを用い、異常な値を排除します。
  25. System.out.println("指定された整数値を入力してください。終了します。");
  26. System.exit(1);
  27. }
  28.  
  29. int myHand = Integer.parseInt(myHandStr); // 文字列を数値(int型)に変換
  30.  
  31. int cpuHand = new java.util.Random().nextInt(3); // Randomクラスを用いてコンピュータの手を決定
  32.  
  33. // このif文は最高にダサいからデータ構造で工夫しろよ // case文面倒です…
  34. if (cpuHand == 0)
  35. System.out.println(cpuName+"の手はグーです。");
  36. else if (cpuHand == 1)
  37. System.out.println(cpuName+"の手はチョキです。");
  38. else
  39. System.out.println(cpuName+"の手はパーです。");
  40.  
  41. if (myHand == cpuHand) // あいこの場合
  42. System.out.println("あいこでした。もう一度やります。");
  43.  
  44. else if (myHand == 0 && cpuHand == 1) { // グー対チョキ
  45. System.out.println(myName+"の勝ちです。");
  46. winner = true; // 勝者確定の構文
  47. } // このクソキモいコーディング規則をどうにかしろ
  48.  
  49. else if (myHand == 1 && cpuHand == 2) { // チョキ対パ―
  50. System.out.println(myName+"の勝ちです。");
  51. winner = true;
  52. }
  53.  
  54. else if (myHand == 2 && cpuHand == 0) { // パー対グー
  55. System.out.println(myName+"の勝ちです。");
  56. winner = true;
  57. }
  58.  
  59. else { // それ以外の場合
  60. System.out.println("残念ながら"+cpuName+"の勝ちです。");
  61. winner = true;
  62. }
  63. }
  64.  
  65. }
  66.  
  67. }
Runtime error #stdin #stdout #stderr 0.06s 4386816KB
stdin
Standard input is empty
stdout
2人でじゃんけんをします。
あなたの名前を入力してください。>
stderr
Exception in thread "main" java.util.NoSuchElementException: No line found
	at java.util.Scanner.nextLine(Scanner.java:1540)
	at Main.main(Main.java:12)