💻 はじめてのプログラミング

ScratchでAIゲームを作ろう

対象:小学5年生〜中学生 | 所要時間:90分

🎯 このレッスンで学ぶこと

このレッスンでは、Scratch(スクラッチ)というプログラミングツールを使って、AIが敵の動きを予測して追いかけてくる「AIおにごっこゲーム」を作ります。

🚀 準備するもの

💡 Scratchとは?
Scratchは、MITメディアラボが開発した無料のプログラミング学習ツールです。ブロックを組み合わせるだけでプログラムが作れるので、初心者でも簡単に始められます。
公式サイト: https://scratch.mit.edu/

🎮 作るゲームの説明

ゲームのルール

AIの仕組み

このゲームのAIは、「プレイヤーの位置を常に計算して、その方向に向かって動く」というシンプルなアルゴリズム(計算手順)を使っています。

プレイヤーのX座標とY座標を読み取り、自分との距離を計算して、プレイヤーの方向を向いて近づいていきます。これが、AIが「追いかけてくる」仕組みです。

1プロジェクトの準備

  1. Scratchにアクセス:https://scratch.mit.edu/ を開きます
  2. 「作る」をクリック:新しいプロジェクトを開始します
  3. プロジェクト名を設定:「AIおにごっこ」と名前をつけましょう
💡 ヒント: 初めてScratchを使う場合は、保護者の方と一緒にアカウントを作成しましょう。メールアドレスが必要です。

2プレイヤー(ネコ)のプログラム

まずは、プレイヤーを動かすプログラムを作ります。デフォルトで表示されているネコのスプライトを使います。

📝 プログラムの内容

⚑ 緑の旗がクリックされたとき ずっと もし <マウスのポインターまで移動する> なら マウスのポインターへ向ける 3歩動かす でなければ もし <上向き矢印キーが押された> なら y座標を5ずつ変える もし <下向き矢印キーが押された> なら y座標を-5ずつ変える もし <右向き矢印キーが押された> なら x座標を5ずつ変える もし <左向き矢印キーが押された> なら x座標を-5ずつ変える もし <端に触れた> なら 跳ね返る

🔧 作り方の手順

  1. イベントブロックから「緑の旗がクリックされたとき」を配置
  2. 制御ブロックから「ずっと」を配置
  3. 制御ブロックから「もし○○なら、でなければ」を配置
  4. 動きブロックから「マウスのポインターへ向ける」と「○歩動かす」を配置
  5. 矢印キーの判定を追加(4つの「もし○○なら」ブロック)
  6. 動きブロックから「x座標を○ずつ変える」「y座標を○ずつ変える」を配置
💡 動作確認: 緑の旗をクリックして、ネコがマウスや矢印キーで動くか確認しましょう!

3AIキャラクター(コウモリ)を追加

次に、プレイヤーを追いかけてくるAIキャラクターを作ります。

📝 準備

  1. 画面右下の「スプライトを選ぶ」ボタンをクリック
  2. 「Bat(コウモリ)」を選択(または好きなキャラクター)
  3. コウモリのスプライトをクリックして選択

📝 AIプログラムの内容

⚑ 緑の旗がクリックされたとき x座標を -150 、y座標を 120 にする ずっと もし <Sprite1(ネコ)まで の距離 < 10> なら すべてを止める 「つかまえた!」と2秒言う でなければ Sprite1(ネコ)へ向ける 2歩動かす

🔧 作り方の手順

  1. イベントから「緑の旗がクリックされたとき」を配置
  2. 動きから「x座標を○、y座標を○にする」を配置(開始位置の設定)
  3. 制御から「ずっと」を配置
  4. 制御から「もし○○なら、でなければ」を配置
  5. 調べるから「○までの距離」を配置し、「Sprite1」(ネコ)を選択
  6. 距離が10より小さければ「つかまえた!」と言う処理を追加
  7. そうでなければ、ネコの方向を向いて2歩動かす処理を追加
🤖 これがAI! 「Sprite1へ向ける」→「歩動かす」の組み合わせが、AIがプレイヤーを追いかける仕組みです。常にプレイヤーの位置を計算して、その方向に動いています。

4タイマー機能を追加

30秒逃げきったらクリアという仕組みを作ります。

📝 変数を作る

  1. 変数カテゴリーを選択
  2. 「変数を作る」をクリック
  3. 変数名を「残り時間」として作成

📝 タイマープログラム(ネコに追加)

⚑ 緑の旗がクリックされたとき 残り時間30 にする 30回繰り返す 1秒待つ 残り時間-1ずつ変える すべてを止める 「クリア!逃げ切った!」と2秒言う

🔧 作り方の手順

  1. ネコのスプライトを選択
  2. 新しく「緑の旗がクリックされたとき」ブロックを追加(2つ目)
  3. 変数から「残り時間を○にする」を配置し、30に設定
  4. 制御から「○回繰り返す」を配置し、30に設定
  5. 制御から「○秒待つ」を配置し、1秒に設定
  6. 変数から「残り時間を○ずつ変える」を配置し、-1に設定
  7. 繰り返しの後に「すべてを止める」を配置
  8. 「クリア!逃げ切った!」と2秒言うブロックを追加

5背景とサウンドを追加(オプション)

ゲームをもっと面白くするために、背景と音を追加しましょう。

🎨 背景を追加

  1. 画面右下の「背景を選ぶ」をクリック
  2. 好きな背景を選択(例:「Rays」「Grid」など)

🎵 サウンドを追加

  1. コウモリのスプライトを選択
  2. 「音」タブをクリック
  3. 「音を選ぶ」で「Bite」などの効果音を追加
  4. 「つかまえた!」と言う前に「○の音を鳴らす」ブロックを追加

📝 ワークシート:完成チェックリスト

以下の項目ができているか確認しましょう!

🎓 チャレンジ課題

基本のゲームができたら、以下の改造にチャレンジしてみましょう!

レベル1:初級

レベル2:中級

レベル3:上級

💡 プログラミングのポイント

順次処理

プログラムは上から順番に実行されます。ブロックを並べる順番がとても重要です。

反復処理(ループ)

「ずっと」や「○回繰り返す」を使うと、同じ処理を何度も実行できます。ゲームでは常に動き続ける必要があるので、「ずっと」をよく使います。

条件分岐

「もし○○なら」を使うと、条件によって違う処理ができます。「距離が10より小さい」という条件で「つかまえた」と判定しています。

変数

データを記憶する箱のようなものです。「残り時間」という変数を使って、経過時間を管理しています。

座標

画面上の位置をx座標(横)とy座標(縦)の数字で表します。中心が(0, 0)で、右がプラス、左がマイナス、上がプラス、下がマイナスです。

🚀 まとめと次のステップ

お疲れさまでした!あなたは今、AI技術の基礎を使ったゲームを作ることができました。この「追跡アルゴリズム」は、実際のゲーム開発やロボット工学でも使われている技術です。

学んだこと

次に学びたい人へ

🎉 作品を共有しよう!
Scratchには作品を公開して世界中の人と共有できる機能があります。完成したら「共有する」ボタンを押して、みんなに見てもらいましょう!