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("私の勝ちですね!"); } } }