|
〜基本編〜 簡単なゲームを作る |
|
基本的な事が一通り終わったので、約束していた簡単なゲームを作ってみたいと思う です〜。今回作るのは数あてゲームです。聞いたことがない人もいるかも知れないので 簡単にどんなゲームか説明するです。 数あてゲームは、適当な数値を決めて、その数値を当てるというゲームですね! 単純なゲームですがこのゲームには、出力、条件判断、繰り返し、例外処理など今ま でやったところすべて入っているです〜。それと今回新しい機能がいくつか出てくるの でそれも一緒にやるです〜 それでは、今回作る数あてゲームを見てみるです〜
まずはゲームのアルゴリズムを説明する前に、今回新しく出てきちゃったところにつ いて説明するです〜 まず16行目に (int)(Math.random()*100 + 1)というのがあるですね! これは、簡単に言ってしまうと1〜100の間の乱数を発生させているです〜 乱数と言うのは適当な値です。毎回何が来るのか分からないのです。 では、なぜ1〜100の値が出てくるのか説明するです。 Math.random()というのが乱数を発生させているです。 このMath.random()を実行すると0〜0.99999・・・までの適当な少数値を決めるです。 それに100をかけると0〜99.999・・・になるですね!それ足す1をすることで 1〜100.999・・・になるです。それをint型にキャストしてあげると 1〜100の整数値になるですね! 28行目と33行目にcontinueというものがきているですね。 これは、ブロックの最初に戻るという意味があるです。 前にbreakをやったことがあるですね!breakのときはブロックから抜けるという意味が あったです。そして今回やったのは、今さっき言ったようにブロックの最初に戻るとい う意味があるです。このプログラムだとwhile(gamePlay)まで戻るです〜 そして再びwhile(gamePlay)を処理するですね! 31行目のif(myAns<1 || myAns>100)は、今までのif文と何か違うですね! なんと条件式が2つあるです。しかも真ん中になぞの記号・・・ 真ん中の謎の記号は、論理演算子という演算子です。 この論理演算子は合計3つあるですが今回出てくるのはそのうちの1つでオア(or)です。 これは、またはという意味をもっているです〜。つまり myAns<1(myAnsが1より小さい)またはmyAns>100(myAnsが100より大きい)とき 処理をするという意味をもっているです。この2つの式のどちらかでも当てはまれば if文は処理されるです〜 それでは、ゲームの大まかなアルゴリズムを説明するです〜 1 それぞれで使う変数などを宣言する 内容はコメントの通りです〜 2 cmpAnsに乱数で作った値を入れる。cmpAnsには1〜100のどれかが入るです。 3 ここからループ処理がはじまるです〜 4 まずは、カウントを1増やすです。このカウントは何回目で正解したかを記録して おくための変数です。 5 値を入力して、整数に変換する。 このとき正しくない値(文字など)が入力された場合再び入力させるです。 1〜100以外の値が入力された場合も同じで再び入力させるです。 6 もし入力した値が乱数で作った答えよりも大きければ、 答えは入力した数値より大きいです〜と表示させる もし入力した値が乱数で作った答えよりも小さければ、 答えは入力した数値より小さいです〜と表示させる もし入力した値が乱数で作った答えと同じだったらgamePlayをfalseにする。 これによってループしなくなるです〜 7 正解以外の場合while(gamePlay)のgamePlayがtrueのまんまなので再びループを 繰り返すです〜。正解するまで繰り返すです〜 簡単なゲームでも奥は結構深いですね! このゲームって実には実は答えの見つけ方に規則性があるです〜。その規則性を見つけ て見るのも面白いです〜。その答えの見つけ方が分かると最低何回で答えが見つかると いうことが分かるです。その見つけ方は検索のアルゴリズムでも使われているです〜 それでは、今回はこの辺で終了するですね! 注意:これより下はただの雑談です・・・ 久々に登場した雑談です〜 今回の雑談は、この数あてゲームです〜。 数あてゲームを初めて作った言語はBASICです。かなりのGoto使いだった です〜。Gotoというのは、知らない人は気にしないほうがいいと思うです。 次に数あてゲームを作った言語はC言語です〜 このときには、今説明したような感じで仕上がっていたです。 そして次にこのゲームを作ったのはJavaです〜 そのあと続々とVBやC#などなど(COBOL、CASLでは作ってないです)で 数あてゲームを作ったです〜。 つまり新しい言語に出会うと、ついついこのゲームを作りたくなってしまうという 感じだったです〜 TOPに戻る Java講座に戻る |