【4限目】ゲームのアルゴリズムを考えよう
アルゴリズムって何?
「アルゴリズム」という言葉がプログラミングの世界ではよく出てきます。
アルゴリズムとは、料理でいえばレシピのようなものだと思ってください。
いわば、どうやってやったらできるのか、を考えるプログラムの手順です。
簡単な作品であれば、適当にブロックを組み合わせてすぐに作れることもありますが、複雑なものや仕事で作るものになってくると、少なからずもアルゴリズムを考えてから作る必要があります。
プログラムの勉強で、いきなり「アルゴリズム」ばかりにとらわれていると、難しく考えすぎてしまうので、最初のうちは、ブロックをならべて「できた!」だけで十分です。
ただ、プログラムには「アルゴリズム」が大事ということだけ覚えておいてください。
これ、どうやってつくったらいいんだろう?とわからなくなった時にこのページに戻ってきてもらえれば大丈夫です。
ネコをつかまえるゲームのアルゴリズムを考えてみよう
まずは今回の作品を再度確認してみましょう。
ここで作りたいものを日本語になおすと
「をクリックすると、ネコがいろんな位置へ移動しつづけて、ネコをクリックすると、にゃーという吹き出しを表示するのと同時に「にゃー」という音をだしたい」
という風になります。
ではここからプログラムをどうやってつくればいいか、と考える時はどうすればよかったのでしょうか?
Scratch(スクラッチ)は、プログラムのブロックの組み合わせでゲームが完成します。
なので
「ネコがいろんな位置へ移動して、ネコをクリックすると、にゃーという吹き出しを表示するのと同時に「にゃー」という音をだしたい」
ということを、Scratchのそれぞれのブロックに置き換えられるようにしてあげればいいんですね。
そこででてくるのが「分解」と「整理」作業です。
まずは「分解」をしていくことで、どんな機能を作る必要があるかがわかり
どのブロックを使うかがみえてきます。
どのブロックを使うかが見えてきたら「整理」をして、ブロックの順番を整えてあげれば完成です。
分解してみよう
「をクリックすると、ネコがいろんな位置へ移動しつづけて、ネコをクリックすると、にゃーという吹き出しを表示するのと同時に「にゃー」という音をだしたい」
まずゴールとのなる上の文章を分解していきます。
B:ネコをクリックすると、にゃーという吹き出しを表示するのと同時に「にゃー」という音をだしたい
どうでしょう?
大きくわかりやすいところから分解していきます。
この場合は移動とクリックで違う内容なのでわけてみました。
分ける順番はあまり気にしなくて大丈夫です。
最終的にScratch(スクラッチ)のブロックに落とせれば大丈夫です。
さらに分解していきます。
Bを分解してみましょう。
B1:ネコをクリックすると、にゃーという吹き出しを表示する
B2:ネコをクリックすると、「にゃー」という音をだしたい
これでBは、Scratch(スクラッチ)ブロックでつくることができるレベルまで分解されました。
Aを分解してみましょう
A2:ネコがいろんな位置へ移動
A3:A2をずっと繰り返す
B1:ネコをクリックすると、にゃーという吹き出しを表示する
B2:ネコをクリックすると、「にゃー」という音をだしたい
今はまだはじめたばかりなので、みなさんはどんなScratch(スクラッチ)のブロックがあるかわからないはずです。
ある程度作品をつくっていくと、どんな機能をもったブロックがあるのかがわかるようになります。
そうするとこの分解もどこまで分解していけばいいか、わかるようになります。
整理してみよう
では次に、整理をしていきましょう。
この整理というのは、主にどの順番でブロックを並べるか ということです。
また同じようなことをやっているブロック群があればまとめたりします。
A1のブロックとA2のブロックを順番でつなげればをクリックしたあとネコが移動しますね
次にA3ですが、A2を繰り返すのでA3のブロックの間にA2だけを挟む という順番の整理がされます。
Bです。これはAよりも簡単ですね。
ただB1とB2は、ネコをクリックしたときというのが同じ条件なので、下図のように1つにまとめることができます。
重複していることをまとめることも整理です。
こんな感じでプログラムがつくられていきます。
いきなりこんな話から始めてしまうとなんかむずかしいなーと思われるので最初は手を動かしてつくるという内容から始めました。
最初は慣れないと思いますが、安心してください。
私の書籍にも書きましたが、プログラミングができるようになるのは、何も考えずにカレーを作れるのと同じです。
カレーも分解すると非常に多くの作業がでてきます。
ただ、カレーを何回か作ったことのある人は無意識に作業を分解して、ひとつひとつ順番を整理して実行して、美味しいカレーをつくっています。
なので主婦の方々はプログラミング的思考をすでにもってるんですね。
- 【1限目】ネコのスプライトとステージを変更
- 【2限目】はじめてのプログラミング?
- 【3限目】ネコを瞬間移動させよう
- 【4限目】ゲームのアルゴリズムを考えよう 今ここです