この課題はJava基本文法の卒業課題です。
個々人でチャレンジしてください。

以前作成した数当てゲームを改良し、以下のように表示されるように改造しなさい。
(なお、ファイルは1つのみとし、改良内容はそのファイルに書き加えていくこと)

コンピュータが用意した答えの数を探すゲーム。ユーザーが推測した数を入れると正解よりも大きいか小さいか,または正解であるかを猫が答える。
それを繰り返すことで答えを探すことができる。ただし、5回以内に正解できないとゲームオーバー。

なお、答えの数は乱数を使って毎回別の答えを用意する。

 

1.ユーザーが3回以内で正解したら褒め言葉を言う

 

(出力例1:大成功ケース)

内緒の答え:25

5回以内に数を当ててね。3回以内ならすごいことだよ。

キーボードから数値を入力してください>25

大あたり!すごいことだよ!

(出力例2:成功ケース)

内緒の答え:89

5回以内に数を当ててね。3回以内ならすごいことだよ。

キーボードから数値を入力してください>50

もっと大きいよ

キーボードから数値を入力してください>75

もっと大きいよ

キーボードから数値を入力してください>82

もっと大きいよ

キーボードから数値を入力してください>89

あたり。まあまあすごいよ。

(出力例3:失敗ケース)

秘密の答え:3

5回以内に数を当ててね

キーボードから数値を入力してください>1

もっと大きいよ

キーボードから数値を入力してください>2

もっと大きいよ

キーボードから数値を入力してください>4

もっと小さいよ

キーボードから数値を入力してください>5

もっと小さいよ

キーボードから数値を入力してください>6

もっと小さいよ

5回以内で答えられなかったのでゲーム終了

 

2.タイマーで経過時間(秒)を表示する

(出力例)

内緒の答え:9

5回以内に数を当ててね。3回以内ならすごいことだよ。

キーボードから数値を入力してください>50

もっと小さいよ

キーボードから数値を入力してください>25

もっと小さいよ

キーボードから数値を入力してください>12

もっと小さいよ

キーボードから数値を入力してください>6

もっと大きいよ

キーボードから数値を入力してください>9

あたり。まあまあすごいよ。

27秒かかったよ

ヒント:時間を計測するためには、Java8のAPIでjava.lang.SystemクラスのcurrentTimeMillisメソッドを参照ください。

 

3.プレイヤーにレベルを選択させる

(出力例)

レベルを選んで下さい (1)0~9  (2)0~99 (3)0~999 > 4

(#^ω^)もう一度レベルを選んで下さい (1)0~9(2)0~99(3)0~999 >3

内緒の答え:69

5回以内に数を当ててね。3回以内ならすごいことだよ。

キーボードから数値を入力してください>69

\(^o^)/大あたり!1回目だからすごいことだよ!

3秒かかったよ

ヒント:while文とswitch文を組み合わせてユーザーからのエラー入力を適切に処理する。

 

4.最後に入力履歴を表示する。

(出力例)

レベルを選んで下さい (1)0~9  (2)0~99 (3)0~999 > 1

内緒の答え:7

5回以内に数を当ててね。3回以内ならすごいことだよ。

キーボードから数値を入力してください>50

もっと小さいよ

キーボードから数値を入力してください>25

もっと小さいよ

キーボードから数値を入力してください>12

もっと小さいよ

キーボードから数値を入力してください>6

もっと大きいよ

キーボードから数値を入力してください>8

もっと小さいよ

5回以内で答えられなかったのでゲーム終了(@^^)/~~~

18秒かかったよ

次回のために履歴を表示するので参考にしてね (^^)!

50→25→12→6→8→終了!

ヒント:ユーザーからの入力履歴を配列に格納しておく。

 

5.自由改良(チーム内で話し合いの上、自由に改良する)

 

6.Hit & Blowを作成してください

※新しいプロジェクトを作成すること

(出力例)

—Hit & Blow—
コンピューターが用意した3つの数字を当ててください。
3つの数字に重複はありません。
あなたが入力した数字の
位置と数字が当たってたらhit、
数字だけあってたらblowです。
3つともヒットになったらあなたの勝ちです
 
秘密の答え:[3, 0, 6]
 
— 1回目のチャレンジ —
1つ目の数字 : 3
2つ目の数字 : 6
3つ目の数字 : 1
hit:1 blow:1
 
— 2回目のチャレンジ —
1つ目の数字 : 3
2つ目の数字 : 0
3つ目の数字 : 6
hit:3 blow:0
あなたの勝ちです!(^_-)-☆

 

以上。

 

JavaSEの問題集トップページに戻る