このページの本文へ

前へ 1 2 3 4 次へ

小学生のプログラミング教室はどうなっているか ― 第3回

いちばんやさしい“ハンダづけ”と“プログラミング”講座/文系女子大生と一緒にKidsVentureと同じことをやってみよう!

2016年11月28日 12時00分更新

文● 天音ほのか 協力●さくらインターネット

  • この記事をはてなブックマークに追加
  • 本文印刷

プログラミングしてゲームを作ろう!

縄跳びさっちゃん

大竹「では、これでひととおりの説明は終えたのでいよいよゲームを作ってみましょう! まずはじめに、《縄跳びさっちゃん》にチャレンジしてみましょう」

縄跳びさっちゃん

10 Y=22:V=99:X=15:U=5:S=0
20 IF V!=99 Y=Y+V:V=V+1
30 IF Y>22 Y=22:V=99:S=S+1
40 X=X+U
50 IF X>15 U=U-1
60 IF X<15 U=U+1
70 IF INKEY()=32 V=-3
80 CLS
90 LC 15,Y:?"@"
100 LC X,22:?"-"
110 LC 0,0:?"SCORE:";S
120 IF Y=22 AND X=15 END
130 WAIT 5 : GOTO 20

 「縄跳びさっちゃん」は、その名の通りスペースキーを押して縄を跳ぶ、というシンプルなゲームです。

 打ち間違いでスコアが出ないトラブルに見舞われながらもなんとか完成。ちゃんと、縄跳びさっちゃんをプレイして遊ぶことができました!

大竹「無事完成したということで“改造”してみましょうか!」

天音「か、“改造”!?」

大竹「100行目にある《?-》という命令、見覚えありますよね。さっき座学の時間でやった画面に文字を表示する命令《PRINT》です。そして《-》は、さっちゃんが跳んでいる縄です。実は、《@》でも《☆》を跳ぶのでもいいんですけど、もうすこし凝ってみましょうか? 例えば、Altキーを押しながらDを押すと宇宙人の記号が出るんですけど、《-》の部分をこの宇宙人に置き換えると、はい。宇宙人で縄跳びをしているなんていうシュールなゲームになりました」

大竹「あとは、70行目に《V=-3》とありますよね。これはさっちゃんのジャンプ力を決めています。ここを例えば《-10》とかにしてみましょうか」

天音「わ! めっちゃジャンプ力上がって、さっちゃんが画面からいなくなっちゃった」

大竹「次は、20行めの《V=V+1》となっているのを《V+3》にしてみましょうか。ここの数字は“重力加速度”を決めています」

天音「もうなんていうか、これだと重力強すぎて地面に張り付いちゃってますね。逆に数字を“0”にして無重力にしてみると、ジャンプしたらさっちゃんがそのまま帰ってこなくなっちゃいましたぁ。え? 面白いですねこれは。自分でゲームの設定を変えられるのって新鮮です」

大竹「そうなんです。そこが自作ゲームのいいところですね。まぁ自分が作ったゲームなんで、禁断のスコア改造とかもできちゃいますよ。1回とぶたびに25点入るようにとか。ゲームの世界では《チート》と呼ばれているものです(笑)。では最後に、《KidsVenture夏休みスペシャル》でも作った川下りゲームを作りましょう!」

川下りゲーム

10 CLS:CLT:X=16
20 K=INKEY()
30 X=X+(K=RIGHT)-(K=LEFT)
40 IF SCR(X,5)!=0 ?TICK():END
50 LC X,5:?”0”
60 LC RND(32),23:?”*”
70 WAIT 3
80 GOTO20

 「川下りゲーム」は、画面上に散りばめられた障害物を左右のカーソルキーを使って避けながら進んでいく“縦スクロールゲーム”。

大竹「実は、このゲーム。とある裏技があるんですけど、気づきましたか? いちばん端っこまで行くと障害物に当たらないんですよ(笑)。男の子たちはいちばん端まで行ってポイントを貯めてたりします。楽しいかな? とは思いますが(笑)。ということで、これを修正してみましょう。プログラムの35行目に《X=(X+32)%32》という命令を追加してみてください。これで、一番はじまで行くと反対側のはじに自動的に行くようになるんです。マリオブラザーズ的な(笑)。これは細い話にはなりますが、Xは自機(いまの場合は船)の座標なんですよ。これの設定をいじることでチートもできてしまう。あとですね、さっちゃんのように自機や障害物の表示を変えることもできます。こういう風に色々といじってみると、そのうちに出てくる変数や数字が何を表しているかっていうのがわかるようになってくるんです」

尾村「それと、今日作ったゲームの命令って実はさっきまで基礎的なレクチャーで教わったものがほとんどなんです。こんなに少ない命令でこれだけ楽しめるゲームが作れるというのは素晴らしいですよね。それと意外なのが、子供達の中に《跳ぶだけなんてつまんない》とか《もっと派手にしたい》とかいう子がいないんですよ。川下りとかでもずっと飽きずにやっている。いまの子供達がマイコンゲームに夢中になれるってすごいことですよね」

天音「まさに《遊びから学ぶ》といった感じですね」

 おまけで見せていただいたのが、こちらのIchigoDotS。KidsVentureでは、前回お伝えしたようにIchigoJamをベースにpaprikaというロボットを作りましたが、この小さなデバイスとIchigoJamを繋いで1文字ずつメッセージを表示できるそうです。今日は、プログラミングだけでしたが、こんなこともできると楽しいですよね。

なぜ電子工作もプログラミングもできたのか?

 電子工作に約1時間、座学を含めプログラミングに約2時間と、たっぷり3時間もレクチャーしていただきました。尾村さん、大竹さんありがとうございました。電子工作もプログラミングもやる前から苦手意識がありましたが、やってみると意外に簡単(?)、楽しいものでした。たった3時間でここまで意識が変わるとは……。

 とくに、ゲーム好きの私としてはプログラミングしてゲームを作るのが楽しく、アルファベットを打ち込むだけでゲームができるようになるというのは! なんだか魔法みたいだなと思いました。しかし、そんなノンキな印象を受けてしまったのも、いま冷静に考えてみれば、実は、すべて講師の方々の教え方にあるのですよね。

 「じゃんけんプログラム」で「IF」という新しい命令が出てきても説明せずに、とりあえず入力して実行していきましたよね。川下りゲームのコードも、実は、《INKEY》、《SCR》、《TICK》、《END》、《LC》と、実は、5つも新しい命令が登場しているんですよ。ぜんぜん尾村さんのいう「基礎的なレクチャーで教わったものがほとんど」じゃないんですよ!! 本当に! でも、これが徹底して「ついてくれば大丈夫だから」と生徒を安心させるんです。

 実は、KidsVentureの小学生たちも同じように、まずは講師の示すコードをそのまま打ち込んで入力していました。ということで、いわゆる「まる写し(“写経”)で学びになるのか?」と心配される人もいると思います。しかし、自転車の練習でいえば、荷台をおさえてもらいながらでも、自分で強く漕いだほうが安定することやハンドルを切るとどうなるかが分かってきます。プログラミングでも、「改造」して中身のことが少しずつ分かってきます。このやり方だと、興味を持った子は、自分のペースでまさに遊ぶように理解していくことができるのだと思いました。

 つまり、「とにかくやってみる」ことが大切。BASICというプログラミング言語も、小学生でも1人も落ちこぼれなく本当に軽々やれていました。むしろ、ギアボックスの模型工作や小学生なら得意なはずのボール紙工作のほうが難航していました(ギアボックスはかなり細かい作業ですが)。なんとなくですが、ちゃんとできあがっているものを"壊す"(改造する)ことで理解するほうが、子供には向いているのかもしれません。

 ちなみに、川下りゲームで出てきた新しい命令は次のような意味があるらしいんですが、これを全部解説されても頭がバクハツしてしまいます。

INKEY……キーボードから1文字入力する
SCR……画面上の指定した位置に書かれた文字コードを取得する
TICK……時間を返す(1/60秒で1進む)
END……プログラムを終了する
LC/LOCATE……次に文字を書く位置を指定する

 3回にわたりお届けしてきた小学生のプログラミング教室のレポート、いかがでしたでしょうか? プログラミングについて、よくわからないけど難しそうくらいにしか思っていなかった私が、まさかプログラミングをすることになるとは夢にも思いませんでした(笑)。

 さて、そんなKidsVentureの教室が、12月10・11日に札幌にて行われます。ここまで紹介してきたように、これをやるのに必要なものは意外に少ないので、「札幌には行けないよ」という方は、この記事を見ながら是非とも自宅でチャレンジしてみてほしいなと思います。ここまで、私のレポートを読んでくださってありがとうございました! この記事で、プログラミングの魅力に少しでも気づいてくれたらうれしいです。

今回用意したもの

IchigoJam T(1,890円)
ハンダ 648円
ハンダゴテ 852円
・テレビ(NTSCビデオ入力のあるテレビ)
  または、ビデオ入力付き7インチ液晶ディスプレイ 1,850円
・ ACアダプタ 580円
ビデオケーブル 151円
キーボード(PS/2対応のUSBキーボード、またはPS/2キーボード+USB-PS/2変換アダプタ) 682円

※価格は記事執筆時点で専門店やネット通販で確認した入手しやすい(価格の安い)ものの参考価格です。はじめての場合は知り合いから借りるのもよいでしょう。

今回習った命令一覧

RUN……プログラムを実行する
CLS……画面をクリアする
LED1……LEDを点ける
LED0……LEDを消す
WAIT……数の数値フレーム分待つ(60で約1秒)
LED1:WAIT60:LED0……LEDを1秒間だけ点灯
SAVE……プログラムを保存する
LOAD……プログラムを読み出す
FILES……保存したプログラムを確認
PRINT……そのあとのものを表示させる(“?”と省略することもできる)
RND……ランダムな数値を返す
NEW……新しいコードを書く

前へ 1 2 3 4 次へ

カテゴリートップへ

この特集の記事
ピックアップ