さんすう(三数)パズルをスクラッチで作ってみた。
前々回 8 回目で にすう(二数)パズルを作ってみた。
が、パズルとしては面白くない。
足し算には引き算、掛け算には割り算をすれば答えがすぐにわかるので。
そこで、よんすうパズル よりは簡単だけど、
まあまあ楽しめる さんすうパズル を作ってみた。
スクラッチのプログラムは結構大きなものになってしまったので、
ここでは解説をしない。
プログラムをスクラッチのホームページに sansuu-puzzle として
にアップしてある。これを実行してみよう。
0. 旗をクリックする。
1. 猫をクリックすると a, b, c, z に数が表示される。
2. a, b, c を使って z にする計算式を考える。
いろいろ答えはある。1+4-1=1x4x1=4÷(1x1) などなど。
たとえば 4÷(1x1) を計算してみよう。
3. キーボードで a, b, c のいずれかの文字を入力すると、その文字の値が e に入る。
まず 1x1 を入力するために、a にある 1 を e に入れよう。
キーボードの a のキーを押すと e に 1 が入る。
1x1では掛け算なのでキーボードの 3 を押す。
5. f に入れる数を a, b, c の残っている文字をキーボードで入力。
f には c の 1 を入れたいので、キーボードの c を押す。
f に 1 が入り、g に 1x1 の計算結果が表示された。
6. h に入れる数を a, b, c, g の残っている文字をキーボードで入力。
h には b の 4 を入れたいので、キーボードの b を押す。
7. O2 に入れる演算子をキーボードから入力。 1:+, 2:-, 3:x, 4:÷
ここでは割り算なのでキーボードの 4 を押す。
8. i に入れる数を a, b, c, g の残っている文字をキーボードで入力
1x1 の結果が入っている g を i に入れる。
9. 正解のときは経過時間を表示
10. 猫をクリックすると新しい問題が表示される。
このプログラムは必ず答えがあるように問題を作っている。
プログラムの「このスプライトがクリックされたとき」の部分が
解のある問題を作成している部分。
先に計算する e O f = g の e と f は、a 以外の b, c と、b 以外の a, c、
c 以外の a, b を用いる3通りの場合がある。
O と O2 の演算子はそれぞれ 4 通りの場合がある。
足し算と掛け算は交換可能(つまり a+b=b+a, axb=bxa)なので、一通りと数える。
引き算は結果が負にならない一通り、割り算は割り切れるときだけを作る。
このようにすると、計 3x4x4=48 通り以下の式ができ、
それぞれの式の計算結果を Zs というリストに蓄える。
このリストの中から乱数で z を選び、出題している。
したがって、a, b, c を使って、必ず z を作ることができる問題になっている。
プログラムは大きく複雑だが、解読してみると、
自分でプログラムを作るときのヒントが得られると思う。
0 件のコメント:
コメントを投稿