2019.03.27
第3回 パズルゲームから広がること
この連載では、プログラミングの経験が全くない方でもわかるように、プログラミングの学び方を説明していきます。
仕事でプログラミングをどうしても覚える必要がある方、最近流行りのプログラムに興味はあるけど何をするものか全くわからない方、近い将来必須科目になるプログラムを子供に習わせたいけど親である自分がプログラムが何なのかわからなくて不安な方など、そんな方でも気軽に読んでいただける連載です。
みなさんもプログラム初心者のMさんと一緒にプログラミングに触れてみてください。
プログラミング初心者のMさんが、ビジュアルプログラミング教材「プログラミングゼミ」を学びながら、プログラミング的思考と技術を習得していくストーリーです。
最初は嫌々ながらプログラミング教室に通いはじめたMさん。
なんだかんだ言いながらも楽しくパズルゲームで遊んで、いや、勉強しているようですよ。
![]() |
だんだん慣れてきた。このパズルは簡単! |
![]() |
いいですねー! 楽しくなってきたでしょう? でも、簡単すぎてもつまらないので、応用課題を出してみましょうか? |
![]() |
はいっ! 今日は調子がいいので、ぜひやってみたいです。 |
![]() |
では、「もんだい5-2」をもう一度開いてください。 |
![]() |
はい。「オレンジ」と「ピンク」の宝石を取るプログラムですね。 こんなふうにプログラムしたんですけど。 |
![]() |
素晴らしい。満点の答えです! では、これと同じ動作をするプログラムを「または」ブロックを使わずに作ってみてください。 |
![]() |
「または」ブロックを使わずに? はい。やってみます。 |
![]() |
できました! |
![]() |
おおっ、調子がいいですね。 どんなプログラムか見せてもらってもいいですか? |
![]() |
はい。このようにしました。 |
![]() |
そうそう、これでいいんです。確かに同じ動作をしますよね。 |
![]() |
いろんな方法があるんですね。 |
![]() |
その通りです。別の方法を見つけるのも楽しいですよ。 |
「~ではない」が重なると難しくなる!?
![]() |
じゃあ、次の応用課題に取り組んでみてください。 「もんだい5-4」の画面にして、そらもんが、「にじいろ」と「ピンク」以外の宝石をとるプログラムを作って下さい。 |
![]() |
「にじいろ」と「ピンク」は取らないで、それ以外の宝石を取るということですね。 やってみます。 |
![]() |
「にじいろ」とぶつかってないときか、「ピンク」とぶつかってないときに宝石を取るんだから、…こうかな? |
![]() |
先生、できました! |
![]() |
早いですね。 では、プログラムを動かしてみてください。 |
![]() |
はい。 |
![]() |
これでやってみると、どうなるかな? あれっ?うまくいかない。さっきと同じで全部取っちゃった。 |
![]() |
苦戦してますね。 でも、これも収穫ですよ。 |
![]() |
どういうことですか? |
![]() |
次の公式が成り立つということです |
![]() |
やったー!できた。 |
![]() |
その通りです! 結構頭を使いましたね。 ここからも、公式を導くことができます。 |
![]() |
なるほど! ひとつずつ覚えていこうっと。 |
![]() |
いい心がけです。頑張ってくださいね。 でも、もっと簡潔にできるパターンもあるんですよ! |
![]() |
えっ、どんなのですか? |
複雑な論理演算をスマートに!- 「ド・モルガンの法則」
![]() |
これです! |

![]() |
たしかに! ちゃんと動きますね。 これは、どういう書き換えですか? |
![]() |
![]() ということです。 数学的には、「ド・モルガンの法則」といいます。 |
![]() |
ド、…ドモル…、何ですか? |
![]() |
「ド・モルガンの法則」です。 高校数学で学ぶ内容ですね! |
![]() |
えーっ、数学は苦手でした。 全然覚えてないんですけど。 |
![]() |
大丈夫、そんなに難しいことではありません。 次の図で、「AまたはB」は、何色の部分ですか? |
![]() |
白の部分ですね。 |
![]() |
その通りです。 では、「(AまたはB)でない」はどこですか? |
![]() |
黄色の部分ですね。 |
![]() |
では、「Aでない」は? |
![]() |
ここですね!黄色の部分。 |
![]() |
その通り! では、「Bではない」は? |
![]() |
ここです! |
![]() |
では、これらの3つの図を並べてみましょうか。 |
![]() |
何か気付きませんか? |
![]() |
あっ、確かに。 最初の2つの図でどちらも黄色の部分が、最後の図になっていますね! |
![]() |
その通りです。 これで、イメージが掴めましたね。 では、もう一度、今回作った、同じ動きをするプログラムを並べてみましょうか。 |
![]() |
どちらが簡単ですか? |
![]() |
それは後の方です。 その方が分かりやすいし、見やすいです。 |
今回のパズル、いかがでしたか?
こども用の「プログラミングゼミ」ですが、結構奥が深いですね。
プログラミングをしていると今回のように「または」とか「かつ」という考え方がたくさん出てきます。
頭の中で考えるだけだと混乱してしまうことがあるので、分からなくなったときは 今回のように図を描きながら考えを整理してみると良いですね!
さて次回は、「繰り返し(ループ)」処理に挑戦してみましょう。