|
分類:[JavaScript]
Java 言語の新しい機能を利用して、じゃんけんゲームを書きます。
import java.io.*; 【 1 】
enum Hand{ ROCK("グー"), SCISSORS("チョキ"), PAPER("パー"); final String hand; 【 2 】 } class Player { Hand getHand() { return getHand((int)(random() * 3)); } Hand getHand(int i){ if(i == 0) return Hand.ROCK; else if(i == 1) return Hand.SCISSORS; else return Hand.PAPER; } } class User extends Player { int i; 【 3 】 public Hand getHand() { try { BufferedReader r = new BufferedReader(new InputStreamReader(System.in), 1); i = Integer.parseInt(r.readLine()); if(1 > i || i > 3) throw new NumberFormatException(); } catch(Exception e){ e.printStackTrace(); System.exit(-1); } return getHand(i-1); } } class JanKen { static void play() { Hand You = new User().getHand(); Hand i = new Player().getHand(); StringBuffer sb = new StringBuffer("\nあなたは" + You.hand + "、わたしは" + i.hand + "、" ); if(i == You) sb.append("引き分けです"); else if((You == Hand.ROCK && i == Hand.SCISSORS)|| (You == Hand.SCISSORS && i == Hand.PAPER)|| (You == Hand.PAPER && i == Hand.ROCK)) sb.append("あなたの勝ちです"); else sb.append("わたしの勝ちです"); System.out.println(sb); } } public class Test{ public static void main(String args[]){ System.out.println("じゃんけんゲーム"); System.out.printf("1:%s 2:%s 3:%sのいずれかの数字を押し[Enter]を押してください\n", Hand.ROCK.【 4 】, Hand.SCISSORS.【 4 】, Hand.PAPER.【 4 】); System.out.print("あなたの手:"); JanKen.play(); } }
実行結果
c:\>java Test じゃんけんゲーム 1:グー 2:チョキ 3:パーのいずれかの数字を押し[Enter]を押してください あなたの手:1
あなたはグー、わたしはチョキ、あなたの勝ちです
Q1 【 1 】には、java.lang.Math クラスの random メソッドを Static Import する宣言を記述します。 コードを記述してください。
Q2 【 2 】には、Hand 列挙型のコンストラクタが入ります。 コードを記述してください。 ヒント:コンストラクタの仮引数の変数名は自由です。受け取った引数は、hand フィールドに保存します。
Q3 【 3 】には、スーパークラスのメソッドをオーバーライドするメソッドであることを宣言するアノテーションが入ります。 コードを記述してください。
Q4 【 4 】に入るコードを記述してください。
|