必勝法を見つけても覚えることができない里得木です。
ということで、必勝法があるゲームのアルゴリズムを考えて、それをScratchでプログラムにしていこうと思います。
必勝法があるゲームと言われて、真っ先に思いついたのが、20ゲームです。
このゲームは名前の通り、20を取った人が負けのゲームで、交互に1~3ずつ取っていきます。
それでは、実際に遊んでみてください。
何回やっても絶対に勝てません!
一体、なぜなのでしょうか。
それでは、原理を考えてみましょう。
何回かやっていたらわかると思うのですが、
自分が1つ取ったら、機械は3つ取る、
自分が2つ取ったら、機械は2つ取る、
自分が3つ取ったら、機械は1つ取る、
というように、取った数の合計が4になるようにしていることがわかります。
なぜでしょうか?
一旦、ルールを確認してみましょう。
①1〜20の数字を用意する。
②交互に1〜3ずつ取っていく。
③20を取ったら負け。
プレイヤーに20を取らせるためには、機械は19を取る必要があります。
機械もプレイヤーも、1〜3までしか取れません。
なので、機械が19を取るためにはプレイヤーに16と17と18または16と17または16のみを取ってもらわなければなりません。
機械が15を取るとそれが可能です。
つまり、プレイヤーが1〜3のいずれかをとっても、合計が4になるように機械が取ることができるのです。
同様の考えで、15を取るためには11取る必要があり、11を取るためには7取る必要があり、7を取るためには3取る必要があります。
最初に3を取っていた理由もわかりましたね。
次回は少し発展させて、プレイヤーにルール(取れる数の上限と、取ったら負けの数字)を決めてもらっても、必敗させられるようなゲームを作りたいと考えています。
それではまた~。
Scratchのアカウントを持っている人へ
をフォローしてくれたら、うれしいです。
面白いと思ってくださった方は、星をクリックしていただければ励みになります。
そして、友人などにも共有していただけると幸いです。
理科・数学・その他の質問はコメント欄or公式XのDMでお願いします。
読者登録で記事更新情報をGET!
Xのフォローで更に良い情報を得られるかも?