初心者がつまづきやすいポイント~教えてもらわないとわからない!~
5月15日の水曜日のクラブ活動は、ゲームプログラミングを進めていきます。
メニュー
- 18時00分~18時20分 タイピング練習
- 18時20分~18時40分 マウス練習
- 18時40分~19時50分 ゲームプログラミングのその前に
- 19時50分~20時00分 あとかたづけ
タイピングとマウスの練習
タイピングやマウスの練習は、すこしずつ行うことが大切です。練習時間は短くてもよいので、回数をこなすと上達が早いのです。
タイピング練習の方法は、金曜日のクラブ活動でも実績のある方法を取り入れています。手元を布でかくすことで、強制的に視線を画面のみに集中させます。
ちなみに、わたしはこれを職業訓練で大人相手に教えていたときに実践して実績を残しています。間違いのない方法です。
ゲームプログラミングのその前に
ゲームプログラミングを書いていく前に、かならず学んでおかなければならないことがあります。ひとつは、変数についてです。
変数とはなんぞや
変数は、よく「箱」と表現します。中学生なら数学で言うところの「x(エックス)」です。小学校なら「□(しかく)」を使って教わります。
プログラムの変数も、数学の変数と概念は同じです。ただし、数学の変数と大きく違う点があります。ひとつは、「プログラムの変数は数字だけでなく、文字やオブジェクトも入ります」。
名前が同じなのに、ふるまいが違うのでとまどうポイントではないでしょうか。いやむしろ先入観のある大人のほうがつまづきやすいポイントかも知れません。子供のほうが柔軟に受け入れてくれているように感じます。
さて、やっかいなのはこの変数の使い方です。プログラム(Python)では、変数に値(数字や文字列)を代入するときに、下のように書きます。
a = b
この式は、「変数aに変数bの値を代入する」という意味です。算数や数学で言うところの「変数aは変数bと等しい」という意味ではありません。
数学的な意味から抜け出せないと、下のように書かれたときにまったく理解できません。
a = a + 1
数学的な意味しか知らないと、上の左辺と右辺は等しくないので、イコールで結ぶことはできません。ところがプログラムの世界では、この表現が頻繁に出てきます。この式の意味は、「(ここからの)変数aに、(ここまでの)変数aに1を足したものを代入する」という意味です。
こう考えると、下のように書くのが視覚的にわかりやすいかもしれません。
a ← a + 1
ちなみにメンバーがつまづいたのは、下の式です。
a = b
b = c
この式を数学的に理解すると、「変数aと変数bと変数cが等しい」という意味です。しかしプログラムの意味は、「変数aに変数bの値を代入して、そのあと変数bに変数cの値を代入する」という意味です。
どういうときに使うかと言うと、繰り返し構文の中で数字を入れ替えるときに使います。実は、光都ICTクラブの優秀なメンバーも、最初はこの「=(イコール)」の使い方にとまどったそうです。
if文(条件分岐)の考え方
ゲームプログラムの前に学ぶべきことのもう一つは、条件分岐の考え方です。
条件によりプログラムの処理を変えるとき、if文を使います。if文では、分岐する条件を適切に書かなければなりません。なれないうちは、条件を頭の中で考えるのが難しいようです。
ならば、条件設定になれないうちは、図に書いてみましょう。下は、わたしが条件を図に書いた様子です。
これは、ベン図を説明用にわたしがアレンジしたものです。ベン図自体は高校くらいで習うツールですが、頭を使った整理の考え方自体は小学校5年生くらいで習います。難しいものではないので、条件設定に迷ったらベン図を積極的に使ってください。