実現したいこと
/実行結果:コマンドプロンプトで実行
2-7.じゃんけんをさせる>javac jp/codeprep/janken/.java
java jp/codeprep/janken/Main
Taro: ? - ? :Hanako
となり?に手が入らない。
発生している問題・分からないこと
上でも書いたように実行結果で「じゃんけんの手」が表示されない。
いろいろやってみたのですが、解決できません。
実行結果:Taro: ? - ? :Hanako
となります。
該当のソースコード
Main.java
1// Main.java 2package jp.codeprep.janken; 3 4public class Main{ 5 6 public static void main(String[] args){ 7 8 Player player1 = new Player("Taro"); 9 Player player2 = new Player("Hanako"); 10 11 // player1とplayer2のそれぞれからnextHand()で 12 // JankenHandを取得し、 13 JankenHand hand1 = player1.nextHand(); 14 JankenHand hand2 = player2.nextHand(); 15 16 System.out.println( 17 // String.formatは書式文字列の中に値を埋めて 18 // フォーマットするメソッドです。 19 // ここでは"%s: %s - %s :%s"と、 20 // 4つの%sがある書式文字列を使っていますが、 21 // %sの部分が後続の4つの引数で置き換わります。 22 String.format("%s: %s - %s :%s", 23 player1.getName(),hand1, 24 hand2,player2.getName() 25 ) 26 ); 27 } 28} 29 30// Player.java 31package jp.codeprep.janken; 32 33import java.util.Random; 34 35public class Player { 36 37 // ここではprivateとして定義したクラスのメンバ変数nameに 38 // コンストラクタの値を代入しています。 39 private String name; 40 41 private Random random = new Random(); 42 43 // コンストラクタとしてStringのnameを渡してそれをメンバ変数として 44 // 持つようにしてみましょう。 45 public Player(String name){ 46 this.name = name; 47 } 48 49 public String getName(){ 50 return this.name; 51 } 52 53 public JankenHand nextHand(){ 54 55 // Javaで正数の乱数を生成するときは、 56 // RandomクラスのnextInt()を使います 57 // nextInt() は 0 から引数に指定した値未満の整数を返します。 58 int n = random.nextInt(3); 59 60 switch(n){ 61 case 0: return JankenHand.Rock; 62 case 1: return JankenHand.Scissors; 63 case 2: return JankenHand.Paper; 64 } 65 throw new IllegalStateException(); 66 } 67} 68 69// JankenHand.java 70package jp.codeprep.janken; 71 72public enum JankenHand { 73 74 Rock, 75 Scissors, 76 Paper; 77 78 @Override 79 public String toString(){ 80 switch (this) { 81 case Rock: return "✊"; 82 case Scissors: return "✌"; 83 case Paper: return "✋"; 84 } 85 throw new IllegalStateException(); 86 } 87} 88
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
実行結果:コマンドプロンプトで実行
2-7.じゃんけんをさせる>javac jp/codeprep/janken/*.java
java jp/codeprep/janken/Main
Taro: ? - ? :Hanako
補足
CODEPREP:Java起訴オブジェクト指向編https://codeprep.jp/books/66/chapters/2/sections/7
で勉強させてもらっています。
エディタはVSCode,windows10,コマンドプロンプトで実行しています。
よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/08/24 02:34
2024/08/24 03:10
2024/08/24 03:37
2024/08/24 04:04
2024/08/24 04:26
2024/08/24 04:30
2024/08/24 14:16
2024/08/26 03:35