前回のじゃんけんプログラムは自分の手とコンピューターの手を予め設定していました。
これではゲームになりません。コンピューター側の手はコンピューター自身に考えて決めてもらいたいです。
じゃんけんの手には1、2、3、の数字を設定しています。ではコンピューターに1~3の数字をランダムに
決めてもらいます。Rubyにはランダムな数字を作るための命令が用意されています。
Rubyリファレンスマニュアルの組み込み関数に「rand」なるものがあります。
これによると、

rand([max=0])
 0 以上 max 未満の範囲の整数の乱数を発生します。

とありますので、とりあえず使ってみます。
computer_hand = rand(2)
print(computer_hand)

何回か実行してみたところ0と1の数字が表示されました。
rand()に2を設定したので「0 以上 2 未満の範囲の整数の乱数」
が出来たようです。欲しい数字は1、2、3、なのでrand()に3を
設定します。これで0、1、2、が表示される様になりました。
あとは+1を加算すれば最初に欲しかった数字が
表示できます。
computer_hand = rand(3)+1
print(computer_hand)

前回のプラグラムの「computer_hand =par」の部分を
「computer_hand = rand(3)+1」に書き換えます。
これで今回の目的であるコンピューター自身にじゃんけんの手を考えてもらう事が出来ました。
-Happily Ever After- 終わり。

今回rand()を使用して0、1、2の数字をランダムに作りましたので、ちょっと
グーグルさんに「乱数 アルゴリズム」というキーワードでお尋ねしてみます。
ウィキペディアの擬似乱数というのが検索結果にでました。少しのぞいて見ると

擬似乱数は計算によって作るので、作り方が分かれば理論的には予測可能

とあります。「予測可能」とあるので、コンピューター相手に勝率100%なんてこともあるかもしれませんね。

乱数を作るプログラムは前回紹介した本
C言語によるはじめてのアルゴリズム入門改訂第3版
C言語による最新アルゴリズム事典
にも掲載されています。

最後にもう一つグーグルさんから「メルセンヌ・ツイスタ」という物を教えてもらいました。
なにやら日本人が作成した「最強の乱数発生プログラム」だそうです。
僕には全く分かりません。

2024年3月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

広告

現在の住まい、将来はVPSへ引越します。 ロリポップの上位版です。

広告

広告

最近のコメント

    広告

    Railsを動かす予定のVPS。無料キャンペーン中。

    広告