とあるテレビ番組を見ていて
BSで「プロスタ」というScratchを題材にした子供向けプログラミング教育番組が
放送されているのを拝見。
私が見た回の中で、安藤先生という方の年齢を少ない質問数で当ててみようという
コーナーがあったのでその部分を参考にJavaで年齢当てゲームを作ってみました。
Main.java
package andouteacher;
import java.util.Random;
import java.util.Scanner;
// 安藤先生の年齢を当てるゲームです
// 指定された回答数の中で年齢を当てましょう
// コツは2分探索です
// 効率の良い答え方で候補を絞っていきましょう
public class Main {
public static void main(String[] args) {
Random rnd = new Random();
int age = rnd.nextInt(80);
int limit = 5;
Scanner sc = new Scanner(System.in);
System.out.println("安藤先生は何歳に見えますか?");
System.out.println("回答するチャンスは"+ limit +"回までです");
for(int i = 0; i < limit; i++) {
int answer = sc.nextInt();
if(answer == age) {
System.out.println("正解です");
break;
} else if(answer > age){
System.out.println("それよりも年下です");
} else {
System.out.println("それよりも年上です");
}
}
System.out.println("正解は" + age + "歳でした");
}
}
番組内では質問できる回数に制限はありませんでしたが、このプログラムでは
回数を5回までに制限しています。int型のlimitという変数がそれにあたります。
すごくシンプルなゲームですがプレイしてみると意外に楽しめます。
興味を持たれた方は是非、このコードを実行して遊んでみてください(^-^)
#追記
ちなみにですが安藤先生は「70歳以上ですか?」と質問されると少しションボリします。
(これは番組内であったやりとりの話であって、このプログラムには一切関係ありません・・・)