15日目は息抜きを兼ねて

同僚の人がC言語で数当てゲームを作ってたので、真似してJavaで作ってみた。今回はまだソース少ないかな…でも一応、後ろに「続きを読む」って形で載せることにする。

今日学んだこと

  • 乱数を使うこと

このプログラムを組む上で一番困ったのが、乱数の使い方を知らなかったこと。勉強に使ってる本には載ってないし、リファレンス見てもわからなかったし…
結局google様の力を借りて実例を引っ張ってくることに。
まあこれで一つ覚えたはずだし、良いことにしよう。

import java.io.*;

public class hit_brow {

	/**
	 * @param args
	 * 数当てゲーム
	 */

	public static void main(String[] args) throws IOException
	{
		// TODO Auto-generated method stub

		//変数を宣言する
		int ans1;
		int ans2;
		int i = 0;
		int j = 0;
		
		//乱数による正解の設定
		double x;
		x = Math.random();
		ans1 = (int)(x * 1000)+1;
		
		//乱数による解答回数の設定
		double y;
		y = Math.random();
		j = (int)(y * 10)+1;
		
		System.out.println("私の思い浮かべた数値を" + j + "回で当ててください");
		System.out.println("1-1000の間です");

		//入力準備
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	
		//不正解の場合、解答回数内で処理を繰り返す
		do{
			i++;
			if((i+1) == j){
				System.out.println("あと2回!");
			}
				else if(i == j){
					System.out.println("あと1回!");
				}
				else{
				System.out.println(i + "回目の答え");	
			}

			String str = br.readLine();
			ans2 = Integer.parseInt(str);
			
			if(ans1 > ans2){
				System.out.println("小さいです");
			}
			else{
				System.out.println("大きいです");
			}
			}
			while(i < j && ans1!=ans2);
		
		//繰り返しを抜けた条件の判別
		if(ans1 == ans2){
			System.out.println("正解! 答えは" + ans1 + "でした");
			System.out.println("正解まで" + i + "回を必要としました");
		}
			else{
				System.out.println("答えは" + ans1 + "でした");
				System.out.println("私の勝ちですね!");	
			}
		}
}