2021/03/27

10. さんすう(三数)パズルをスクラッチで作ってみた。

さんすう(三数)パズルをスクラッチで作ってみた。

 前々回 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 が入る。


4. キーボードで 1 を押すと、O に +、2 を押すと -、3 には x、4 には ÷ が入る。
 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 に入れる。


 4÷(1x1) の結果が j に表示された。

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 件のコメント:

コメントを投稿

20. 円錐の半分?

17-19 で三角形、四角形の面積を半分にする問題を解いた。 今回は円錐を半分にする実験をしてみよう。 まず、円錐を作るための図形をスクラッチで描いてみた。 プログラムはここ。 https://scratch.mit.edu/projects/561804896 これを実行すると...