みぎひだり反射神経ゲーム ― 2つのボタンでゲームを作ろう
Inquiry-Based Study

本体の2つのボタン(左=PA9・右=PA8)をコントローラーに、ジャンパーワイヤでのばしたLEDパネルをディスプレイにして、反射神経ゲームを作ります。ステップ0〜5の順に、ボタン判定→ランダム出題→完成ゲーム→制限時間の調整まで体験。各ステップにかくにん問題つき。むらさきはガマンの発展プログラムとハイウェイレースのサンプルも遊べます。
ここでやること
今回のゴールは、本体についている2つのボタンを使って、自分のゲーム機を作ることです。ジャンパーワイヤでのばしたLEDパネルが「画面」、本体のボタンが「コントローラー」。ぜんぶ合わせれば、手のひらゲーム機の完成です。

全体の流れ(約60分)
| ステップ | 内容 | めやす |
|---|---|---|
| 0. じゅんび | LEDパネルをワイヤでのばしてつなぐ | 10分 |
| 1. ボタンを知る | ボタンのブロック2種類のちがいを知る | 5分 |
| 2. コントローラー | ボタンで左右をはんていする | 10分 |
| 3. 出題そうち | ランダムに左右の問題を出す | 10分 |
| 4. あそぶ | 完成プログラムをコピーして遊ぶ | 10分 |
| 5. 調整する | 時間を変えて、むずかしさを変える | 5分 |
| 応用・発展 | ルールを増やして自分のゲームにする | 10分 |
ステップ0 じゅんび ― LEDパネルをのばしてつなぐ
プログラミング画面を開こう。「新しいプロジェクトを追加する」→「作成」。

SPACEBLOCKをパソコンにつなげよう。USBケーブルでつないで「USBで接続する」。2回目からは自動でつながります。

LEDパネルをジャンパーワイヤで延長します。
いつもは本体に直接さしていたLEDパネルを、3本のジャンパーワイヤでのばします。横向きピンソケットのならび(A10・5V・GND)はそのまま、まっすぐつなぐだけ。
いつもは本体に直接さしていたLEDパネルを、3本のジャンパーワイヤでのばします。横向きピンソケットのならび(A10・5V・GND)はそのまま、まっすぐつなぐだけ。

ワイヤでのばすと、LEDパネルを見やすい場所に立てて置けます。これが今日のゲーム機の「ディスプレイ」です。ゲーム機もテレビも、中では同じように「画面」と「ボタン」が線でつながっています。
❓ ステップ0のかくにん
ジャンパーワイヤでLEDパネルをのばすと、どんないいことがある?となりの人に1つ言ってみよう。
ステップ1 ボタンのブロックを知ろう
本体には押しボタンが2つついています。左がPA9、右がPA8です(小さいボタンはリセット用なので使いません)。

ボタンのブロックは「基本」カテゴリにあります。
- 「ボタン(PA8)が押された」: 押されたしゅんかんに1回だけ動く
- 「ボタン(PA8)が押されている」: 押されているあいだずっと「はい」になる(「もし」ブロックと組み合わせて使う)
❓ ステップ1のかくにん
「押されたしゅんかんだけ1回」動かしたいときは、2つのうちどちらのブロック?
また、左のボタンのピン名は?
また、左のボタンのピン名は?
ステップ2 ボタンで左右をはんていしよう
左のボタン(PA9)を押したら左向きの矢印、右のボタン(PA8)を押したら右向きの矢印をLEDに表示してみましょう。下のプログラムのとおりに、ブロックをならべてみよう。
押したほうの矢印がパッと出れば大成功。これで「コントローラー」ができました!
❓ ステップ2のかくにん
矢印が出ないときは、どこをたしかめる?
- ボタンのピン名(PA8 / PA9)はあっている?
- LEDパネルの線(A10・5V・GND)はぬけていない?
ステップ3 ランダムに問題を出そう
次はゲームの「問題」係です。繰り返し・ランダム・もし・一時停止の4つを組み合わせて、左右の矢印をランダムに表示します。
ポイントは、切りかえの前に100ミリ秒だけ完全に消灯すること。こうすると同じ矢印が2回続いたときも「あ、次の問題が出た!」とわかります。
❓ ステップ3のかくにん
「1から2までのランダムな整数」を使うと、何が起きる?
もし消灯(100ミリ秒)をなくしたら、どんなこまったことが起きる?
もし消灯(100ミリ秒)をなくしたら、どんなこまったことが起きる?
考えてみよう ― どんなゲームが作れるかな?
「ボタンで左右をはんていするコントローラー」と「ランダムに左右を出す問題」。この2つを組み合わせると、どんなゲームが作れるでしょうか?
となりの人とアイデアを話してみよう。
となりの人とアイデアを話してみよう。
ステップ4 完成プログラムで遊ぼう
⚡ ゲームを作るときは、実行速度を「速い」に変えよう
プログラミング画面の右上の設定メニュー(歯車マーク)→「実行速度の調整」→「速い」をえらんで「適用する」。
反射神経ゲームのようにすばやさをきそうプログラムは、速度が「通常」のままだとボタンの反応がおくれてうまく遊べません。ゲームを作るときのおまじないとして覚えておこう。
反射神経ゲームのようにすばやさをきそうプログラムは、速度が「通常」のままだとボタンの反応がおくれてうまく遊べません。ゲームを作るときのおまじないとして覚えておこう。
下の完成プログラムを開いてコピーし、実行してみましょう。「みぎひだり反射神経ゲーム」です。
ゲームのルール
| こうもく | 内容 |
|---|---|
| スタート | 3・2・1のカウントダウンでスタート |
| あそびかた | 出た矢印と同じがわのボタンを押す |
| せいげん時間 | 0.5秒(500ミリ秒)以内に押す |
| しっぱい | 時間切れ、または反対のボタンでゲームオーバー |
| スコア | 成功した回数。さいごにLEDに流れる+コンソールにも記録 |
プログラムのしくみ(かいせつ)
- 問題を出す: ステップ3と同じ。100ミリ秒消灯→ランダムで左右の矢印
- 時間の計り方: 「25ミリ秒待つ」をくりかえしながら、毎回ボタンをチェック。のこり時間 = せいげん時間ミリ秒 ÷ 25 回だけくりかえします
- 判定: 押したボタンの番号(左=1、右=2)と問題の番号がおなじならスコア+1。ちがったら(または時間切れなら)ループから抜けてゲームオーバー
- 記録: 出た問題と最終スコアはコンソール(シミュレータの下の黒い欄)にも表示されます
ステップ5 時間を変えて、むずかしさを調整しよう
このプログラムは、いちばん上にある「せいげん時間ミリ秒」を1か所変えるだけでむずかしさを調整できるようになっています。「数字 せいげん時間ミリ秒 に (500) をセット」の500を書きかえて、実行してみよう。
せいげん時間ミリ秒 のめやす
| 数字 | 時間 | むずかしさ |
|---|---|---|
| 700 | 0.7秒 | かんたん(はじめての人むけ) |
| 500 | 0.5秒 | ふつう(さいしょの設定) |
| 350 | 0.35秒 | むずかしい |
| 200 | 0.2秒 | げきむず |
❓ ステップ5のかくにん
せいげん時間ミリ秒を 250 にしたら、「のこり時間」は何回くりかえしになる?(ヒント: ÷25)
🎲 もっとおもしろく: 時間をランダムにしてみよう
いつも0.5秒だと、なれてくると「そろそろ来るな」と読めてしまいます。そこでせいげん時間ミリ秒に、200から500までのランダムな整数を入れるようにしてみましょう。
くりかえしの中で「数字 せいげん時間ミリ秒 に 200 から 500 までのランダムな整数 をセット」を入れるだけ。1回ごとに0.2〜0.5秒とバラバラになるので、毎回ドキドキするゲームになります。
くりかえしの中で「数字 せいげん時間ミリ秒 に 200 から 500 までのランダムな整数 をセット」を入れるだけ。1回ごとに0.2〜0.5秒とバラバラになるので、毎回ドキドキするゲームになります。
応用 こうカスタマイズしてみよう
ここからは自分だけのゲームに改造するアイデアです。
- ゲーム中にスコアが見えるように: 一番下の行に、成功した数だけ点灯させてみよう(「点灯」ブロックで1マスずつ)
- 押すまでの時間をランダムに: ステップ5のランダムを取り入れる
- 押しちゃいけない色: たまにむらさきを出して、そのときは押さずにガマン! 押したらゲームオーバー
発展プログラム ― むらさきはガマン!
上の応用アイデアをぜんぶ入れた発展プログラムがこちらです。
- せいげん時間は毎回0.2〜0.5秒のランダム
- お題は3種類。むらさきが出たら押さずにガマンできたらスコア+1
- スコアは一番下の行にみどりのバーで表示(最大8)
サンプルプログラム ― ハイウェイレース
アニメーションもりもりの本格ゲームもどうぞ。「ハイウェイレース」です。
- 左右のボタンで水色の車を動かして、上から来る赤い車をよけ続ける
- よけるたびにスコア+1。そしてどんどんスピードアップ(なれた人でもけっこう手ごわい)
- ときどき黄色のボーナスアイテムが落ちてくる。とれたらスコア+3!
- ぶつかると爆発アニメーション→スコアがLEDに流れる
- タイトル画面・カウントダウン・効果音つき。コンソールにも記録されます
まとめ
画面(LED)・コントローラー(ボタン)・ルール(プログラム)。この3つがそろえば、ゲーム機は自分で作れます。そして数字を1つ変えるだけでおもしろさが変わるのが、プログラミングのすごいところ。今日の改造アイデアをどんどん試して、世界にひとつのゲームに育てていこう!