C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: javaの問題がわかりません。教えていただけますか。


(過去ログ 120 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■70428 / inTopicNo.1)  javaの問題がわかりません。教えていただけますか。
  
□投稿者/ realman (1回)-(2014/03/22(Sat) 22:48:03)

分類:[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 】に入るコードを記述してください。
引用返信 編集キー/
■70429 / inTopicNo.2)  Re[1]: javaの問題がわかりません。教えていただけますか。
□投稿者/ もりお (22回)-(2014/03/22(Sat) 23:59:21)
No70428 (realman さん) に返信

へい。

> 【 1 】には、java.lang.Math クラスの random メソッドを Static Import する宣言を記述します。
> コードを記述してください。

import static java.lang.Math.random;

> Q2
> 【 2 】には、Hand 列挙型のコンストラクタが入ります。
> コードを記述してください。
> ヒント:コンストラクタの仮引数の変数名は自由です。受け取った引数は、hand フィールドに保存します。

private Hand(String hand) {
this.hand = hand;
}

> Q3
> 【 3 】には、スーパークラスのメソッドをオーバーライドするメソッドであることを宣言するアノテーションが入ります。
> コードを記述してください。

@Override

> Q4
> 【 4 】に入るコードを記述してください。

hand
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -