理系の理系による理系のためのブログ

理系以外の人も大歓迎です。

Scratchで「敗戦確実ゲーム」を作った


必勝法を見つけても覚えることができない里得木です。

ということで、必勝法があるゲームのアルゴリズムを考えて、それを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のアカウントを持っている人へ

rieki_program on Scratch

をフォローしてくれたら、うれしいです。

 

面白いと思ってくださった方は、星をクリックしていただければ励みになります。

そして、友人などにも共有していただけると幸いです。

理科・数学・その他の質問はコメント欄or公式XのDMでお願いします。

 

読者登録で記事更新情報をGET!

 

Xのフォローで更に良い情報を得られるかも?

twitter.com