講座２：メンター育成講座

配布資料

ver.20170802<英語キーボード版>

ゲームをつくろう

PCN ( http://pcn.club/ ) & IchigoJam ( http://ichigojam.net/ )講座2

ゲーム作りを通して、プログラムを自分でタイピングして作る

この講座では、次の事柄を、IchigoJamでのゲーム作りを通して体感しながら、学んでいきます。

• ゲーム を 自分でつくる• 順次処理 を体験し、論理思考を養う• プログラミング、動作確認 を 何度も繰り返せる• 指示があってれば動作。指示が間違っていればエラー表
示 or 思わぬ動作• 自分で作ったプログラム は 改造ができる

講座2

ゲーム作りを通して、プログラムを自分でタイピングして作る• ゲームを 自分でつくる→ 家で遊んでいるゲームは、プログラミングで作れることを体験する
IchigoJamの画面は白黒で、絵も粗いが、楽しさには影響がない• 順次処理を体験し、論理思考を養う→ 行の最初にある数字（＝行番号）の 小さい数字 から 大きい数字 へと順番に動作が進んでいく。その大きな流れにそって、やりたいことを組み立てる（＝論理思考）• プログラミング、動作確認を 何度も繰り返せる→ コンピューターの特徴でもある、試行錯誤ができることを体験思いついた事をコンピューターに伝える方法を、自ら探る• 指示があってれば動作。指示が間違っていればエラー表示or思わぬ動作→ 伝え方の組み立ての検証を、自ら行える• 自分で作ったプログラム
は 改造ができる→ 自ら作ったゲームのルールやキャラクターが変更できることから、つくる楽しみ・喜びへつなげる。また、人が作ったプログラムも、自分が行いたい変更を加える事ができるという事実を知る。

講座2

ゲーム作りを通して、プログラムを自分でタイピングして作る• スケジュール
• 講座2a : IchigoJamの準備• 講座2b : ゲーム作成 -導入-講座• 講座2c : ゲーム作成 -完成-講座• 講座2d : ゲーム作成 -改造• 機材一覧
• IchigoJam, キーボード, 電源, テレビ, 各種ケーブル• IchigoJamリファレンス or IchigoJamでプログラミング等の参考書• 指導される方へのメッセージ• 数字の変更などによる試行錯誤で、理解が深まります• プログラム上の間違いでは、IchigoJamは壊れませんので安心メンター

講座2a : IchigoJamの準備•講座1a を参考にして、子供毎にIchigoJamを準備します•はやく準備が終わった子供は、LED1などの復習•クイズ3 の答え合わせを行うのも良いですメンター

講座2b : ゲーム作成 -導入•スライドが進むごとに、ゲームの要素が動くようになっていきます•途中に、プログラミングで使う技術の紹介を少し含んでいます•組み込みキャラクターは、シーンに合わせて変更するのも良いですゲームをつくろうさいしょから（プログラムクリア）

NEW

ほぞんしたのはきえないよ「:」（コロン）は、キーボード右がわ。
SHIFTと同時に、「;」キーをおす「=」（イコール）はキーボード右上。BSとなり。

10 CLS:X=16
数字で、はじまる行は、すぐに動かな
いで、IchigoJamが、きおくします
メンター：
RUN (もしくは F5キー）で、記憶したプログラムが実行できます

きおくさせようメンター

NEW, RUN, CLS, ?

• 命令 : NEW• NEW
は、現在作成中のプログラムを全部消して、電源を入れたときと同じ状態にする命令です。

• 命令 : RUN••

RUN は、現在記憶しているプログラムを順番に実行する命令です。
ここまでで 10行目 のみ、入力されて記憶されているので、RUNを実行すると、10行目の内容を、左から順番に実行します。

• 命令 : CLS•

CLS は、画面に表示されている文字をすべてクリアする命令です。作成中のプログラ
ムは失われません。

• 命令 : ?

• ？ は それに続く文字を画面に表示する命令です。
• ? は PRINT 命令の省略形です （どちらも同じ動き）• ?10
は 数字10を表示。?1+2 は 1+2 の計算結果を表示（ここでは 3）。
?”ABC” は文字ABCを表示。 ?X は変数X の内容を表示。

「？」（はてな）はキーボード右のSHIFT左となりSHIFTと同時に、おすはてなマークでがめんにひょうじ?X

メンター：
最初のプログラムで 箱X に 16 を入れました。ここで ?X をすると、箱Xの中に入っている情報 「数字の16」を表示します。

なにがでるかな？

メンター

変数

• プログラミングでの大切な要素に 変数 があります• 変数とは：数字や文字の入れ物と 考えます。式の左辺の文字（変数） に 式の右辺の数字や文字を入れる（= 記号の意味 は 「代入」）して一時的に記憶させ、処理の進行によって内容を入れ替えて、多用な計算・表現を行います。
次の書き方は、どちらも同じ意味です。

•LET A,A+1 と•••10 A=10:LOCATE 10,A:PRINT “HELLO”
20 A=A+1:LOCATE 10,A:PRINT “ICHIGO”
30 A=A+1:LOCATE 10,A:PRINT “JAM”•••

10 A に 10を入れて、”HELLO” を表示
20 A に A（いまは10）+1を入れて、”ICHIGO” を表示
30 A に A（いまは11）+1 を入れて、”JAM” を表示

A=A+1※「=」記号の意味が数学の等価ではなく代入• 例：変数Aの初期値から相対的に文字を表示する• 上記プログラムの解説：• 指導される方へのメッセージ• 変数の正確な理解がなくても、講座の進行はできます。

リスト（プログラムみせて）

LIST
F4でもOK楽しいキャラをさがそう！

c

左下の[ALT]キー
をおしながらC

ねこのほかにもいろいろいるよ

メンター

絵文字

• IchigoJamには、特殊な絵文字があります• 入力の方法：• [ALT] キー と アルファベット1文字（Cなど）を同時に押す• 例：• [ALT] + A : 10
• [ALT] + B : オニギリ
• [ALT] + C : ネコ
• …
• [ALT] + V ：イチゴ
• WindowsやMacには、これら特殊な絵文字はありません• 指導される方へのメッセージ• キャラクターの変更だけでも、子供たちの創造は広がりますCLS
F1でもOK「”」（ダブルクォート）はキーボード右のEnter左となりSHIFTと同時に、おす

20 LC X,5:?”c”
うちこんでエンターF5でうごかす！
メンター：
座標 X,5 にネコが出現します。
Xは、先程入力したプログラムの通りで 16 が入っているので 16,5 の位置。

じぶんキャラ「(」「)」（かっこ）はSHIFTおしながら,「9」「0」キー「*」（アスタリスク）は、SHIFTおしながら、「8」キー

30 LC RND(32),23:?”*”
うちこんで、エンター、F5F5をれんだすると？？
メンター：
F5を連打すると、敵がランダムにあちこちに出現します。

てきキャラ

メンター

座標 , LC , RND(n)• 座標(0,0)• IchigoJamの画面は、X,Y : ２次元で位置が指定できる構造で、32 ✕ 24 の解像度です• 座標系は、画面左上が原点(0, 0)で、画面右下が最大地点 (31, 23) です。右にいくと X が増加(31,0)

32 x 24。下にいくと Y が増加します。

• 解像度の違いはありますが、多くのコンピュータで、同じ仕組みをとっています。
(0,23)(31,23)• 命令 : LC X, Y

• 次のPRINTする文字を表示する場所を、座標 X, Y で指定します• LC X, Y は、 LOCATE X,Y の省略形です（どちらでも同じ動作）• 命令 : RND(n)•••n より小さな数字を、ランダムに出す命令です （乱数を取得）
RND(10) とすると 0から9 までの数字を一つ、ランダムに選ぶ
実行するタイミングによって出て来る数が変わるので、ジャンケンのコンピュータの手を決める、くじ引きで引くクジの内容を決める、敵の位置を決めるなどに活用ができますメンター講座2c : ゲーム作成 -完成•ここまでに作った内容をベースに、ゲームを完成させます•ゲームオーバーを作るまでは、無限に動作を行うので ESC での止め方の指導をします•早く進んだ子供は、他の子をサポートしたり、先の講座を取り組ませても良いです40 GOTO20

うちこんで、エンター、F5

てきキャラ

35 WAIT 3

とめる（ESC）
みる（F4）
うごかす（F5）

スピードちょうせいメンター

LIST, GOTO n, WAIT n• 命令 : LIST••

LIST は、現在記憶しているプログラムを表示する命令です。
ここまでのプログラム一覧は、図のようになります。

• 命令 : GOTO

• GOTO は、指定した数字の行へジャンプする命令です。
• この命令を使って、プログラミングの大切な要素「ループ」を作ることができます。
• ここまでのプログラムでは、10,20, 30, 40 と実行すると また 20 に戻り 20, 30, 40 と継続するという終わらないループ「無限ループ」を作っています• 命令 : WAIT n• WAIT は、指定した数だけ次の処理へ移るのを待つ命令です。
• WAIT 60 で 約1秒間待ちます。ですので、WAIT 300 だと 5秒待ちます「+」（プラス）はキーボード右上のBS左となりSHIFTと同時に、「=」キーをおす

36 X=X-BTN(28)+BTN(29)

とめる（ESC）
みる（F4）
うごかす（F5）

メンター：
36 LET X, X-BTN(28)+BTN(29)や、BTN(28) → BTN(LEFT)
BTN(29) → BTN(RIGHT)と、書き換えることも出来ます

左右キーでそうさ

37 IF SCR(X,5) END

とめる（ESC）
みる（F4）
うごかす（F5）あたりはんていメンター

矢印キー, IF, SCR(x,y)• 矢印キー•••

次の行で、キーボードの左右矢印を使って動くようにします36 X=X-BTN(28)+BTN(29)••左矢印キーを押す : BTN(28) が1, 右矢印キー : BTN(29) が1動作） 左が押されたら、Xを1つ減らし、Xを1つ増やす

36 LET X, X-BTN(28)+BTN(29)と書くことも出来ます。

• 命令 : IF• IF は、指定する条件の一致・不一致により、処理を変える命令です• この命令を使って、プログラミングの大切な要素「条件判断」を行います。
• 例） IF A==0 END の場合 変数Aに0が入っていたら、プログラムを終了します• 命令 : SCR(x,y)• SCR は、指定した(x,y)座標にある文字の文字コードを取得する命令です。
• 37
IF SCR(X,5) END では、自分の位置直下(X,5) に何か文字がある（敵がいる）場合には SCR(X,5) が0ではなくなり、プログラムを終了します• 37 IF SCR(X,5)>0 END や 37 IF SCR(X,5)!=0 END と書くことも出来ます。

10 CLS:X=16
20 LC X,5:?”c”
30 LC RND(32),23:?”*”
35 WAIT 3
36 X=X-BTN(28)+BTN(29)37 IF SCR(X,5) END
40 GOTO 20
じぶんキャラのいちにてきキャラがいたらEND

できあがり！

ほぞん（プログラムかきこみ）

SAVE1
F3 と 1でもOKメンター

講座2d : ゲーム作成 -改造•完成したゲームを、子供がオリジナルに改造します•改造を行いながら、プログラムで指示した理解を深めます•キャラクターの変更だけでも、全員ができると良いと思います•早くできた子供は、BEEPを使って音を鳴らすなどの取組も有効です楽しい かいぞう

10 CLS:X=16
20 LC X,5:?”j”

30 LC RND(32),23:?”eee”
35 WAIT 10
36 X=X-BTN(28)+BTN(29)37 IF SCR(X,5) END
40 GOTO 20

とめる（ESC）
けす（F1）
みる（F4）
うごかす（F5）

キャラをかえる
スピードをか10 CLS:X=16
20 LC X,5:?”c”

30 LC RND(16),23:?”*”
35 WAIT 3
36 X=X-BTN(28)+BTN(29)37 IF SCR(X,5) END
40 GOTO 20

とめる（ESC）
けす（F1）
みる（F4）
うごかす（F5）

テキが半分に？

5 CLT
10 CLS:X=16
20 LC X,5:?”c”
30 LC RND(32),23:?”*”
35 WAIT 3
36 X=X-BTN(28)+BTN(29)37 IF SCR(X,5) ?TICK(): END
40 GOTO 20

とめる（ESC）
メンター：
・修了時に、何カウント逃げれたかのス
けす（F1）
コアが表示される・TICK() は、IchigoJam内部でカウントされてる数字と表示する
みる（F4）
・CLTは、TICK()のカウントを初期化（ゼロ）にする
うごかす（F5）

スコアを出すあれ、みっかった？

10 CLS:X=16
20 LC X,5:?”j”
30 LC RND(32),23:?”eee”
35 WAIT 3
36 X=X-BTN(28)+BTN(29)37 IF SCR(X,5) END
38 X=(X+32)%32
40 GOTO 20
メンター：
・画面左にぶつかると、右にでてくる
・画面右にぶつかると、左に出てくる・% は 剰余演算（割り算の余り）
剰余演算の例）
32%32 = 0 （32÷32 = 1あまり0）33%32 = 1 （33÷32 = 1あまり1）
34%32 = 2 （34÷32 = 1あまり2）
62%32 = 30 （62÷32 = 1あまり30）
63%32 = 31 （63÷32 = 1あまり31）（5÷4 = 1 あまり 1・3%32 = 31 （5÷4 = 1 あまり 1 ・5%2 = 4（5÷1 = 1 あまり 1）

チートたいさく１

10 CLS:X=16
20 LC X,5:?”j”
30 LC RND(32),23:?”eee”
35 WAIT 3
36 X=X-BTN(28)+BTN(29)37 IF SCR(X,5) END
38 IF X<0 OR X>31 END
40 GOTO 20

メンター：
画面左右にぶつかったら、ゲームオーバーになる

チートたいさく２

ほぞん（つくったプログラムかきこみ）

SAVE1

F3、1でもOK

よみこみ（ほぞんしたプログラムをよみこむ）

LOAD1

F2、1でもOKメンター

ICHIGOJAM BASIC リファレンス

http://ichigojam.net/IchigoJam.html

メンター

ICHIGOJAM BASIC リファレンス

http://ichigojam.net/IchigoJam.html

メンター作ると遊ぶ• 「ゲームを作る」と「ゲームを遊ぶ」の間には、大きな差があります。
楽しいゲームを作るためには、企画・デザイン・音楽の他、物理・数学（動作を作る為）をプログラミングで組み合せる能力が働きます。

• 日本は、若年層のパソコン保有率が極めて低い（図）。かわりに、ゲーム機、タブレットなどの所有率が高くなっています。
• コンピューターを利用したモノづくり・ソフトェア作りを行うには、まだまだキーボード・マウスで使うコンピューター（Windows, Macなど）が必須です。将来的な、日本国の課題解決力の不足に繋がる懸念があります。

日本

13〜15歳 自分のパソコン保有率

韓国
アメリカ
スイス
フランス
ドイツ

内閣府「わが国と諸外国の若者の意
識に関する調査」(2013年)より

イギリス
0

10 20 30 40 50 60 70 80 90 100

すべてのこどもたちに
プログラミングをhttp://pcn.club/