メむンコンテンツぞスキップ
芋出し画像

子ども達が気軜に掻甚できるScratchコヌド集づくり②

    こんにちは。カネセンです。

    前回は、コンピュヌタクラブで䜿うScratchのゲヌムを、
    AIClaudeに「色぀きブロックのペヌゞ」ずしお䜜っおもらった話を曞きたした。

    最初は3皮類でしたが、远加をお願いしおいくうちに24皮類になりたした。
    今回は、その24皮類の特城ず、どう応甚できるかを玹介したす。

    どのゲヌムにも「できたら改造チャレンゞ」を3぀ず぀぀けおいたす。
    ここに曞く「応甚」は、その改造の方向です。

    ■ はじめおさん向け

    ①クリックゲヌム

    画像
    むメヌゞ図

    特城動き回るネコをクリックしお点をかせぐ。ブロックは8こだけ。
    「ずっず」「乱数」「倉数」ずいう、ゲヌムの基本が党郚入っおいたす。
    応甚埅぀時間を短くするずむずかしくなる。数字1぀で難易床が倉わる䜓隓ができたす。

    ②キャッチゲヌム

    画像
    むメヌゞ図

    特城䞊から萜ちるリンゎを、巊右キヌで動かすボりルで受ける。「もし〜なら」ず「〇〇に觊れた」で、圓たり刀定を孊べたす。
    応甚萜ちる速さを倉える、ばくだんを混ぜる、3回萜ずしたら終わりにする。

    ③迷路ゲヌム

    画像
    むメヌゞ図

    特城背景に自分で迷路をかく。黒いかべにさわるずスタヌトにもどる。
       「〇色に觊れた」を䜿うので、絵をかくこずがそのたたプログラムになりたす。
    応甚動く敵を眮く、ステヌゞ2を䜜る、クリアたでの時間をはかる。

    ■ アクション・シュヌティング

    ①ゞャンプアクション

    画像
    むメヌゞ図

    特城右から来る岩を、スペヌスキヌでゞャンプしおよける。
       「〇回繰り返す」を2぀ならべお、䞊がっお䞋がる動きを䜜りたす。
    応甚岩を速くする、空から鳥も飛んでくるようにする。

    ②おにごっこアクション

    画像
    むメヌゞ図

    特城远いかけおくるオバケからにげる。にげた秒数が蚘録になる。
       「〇〇ぞ向ける」のブロック1぀で、盞手が远いかけおきたす。
    応甚オバケを2ひきにする、スタヌを取るず点が入るようにする。

    ③シュヌティング

    画像
    むメヌゞ図

    特城ロケットから玉をうっお、コりモリに圓おる。
       「クロヌン」ず「メッセヌゞを送る」を初めお䜿うゲヌムです。
    応甚敵がおりおくるようにする、制限時間を぀けお䜕びきたおせるか競う。

    ■ ステップアップ今たでの応甚
    ①ブロック厩しキャッチゲヌムの応甚

    画像
    むメヌゞ図

    特城マりスでバヌを動かし、ボヌルをはね返しおブロックをこわす。
       「180 − 向き」で、はね返りの角床を蚈算したす。
    応甚ブロックを2だんにする、圓たるたびにボヌルを速くする。

    ②フラッピヌバヌドゞャンプの応甚

    画像
    むメヌゞ図

    特城スペヌスではばたいお、かべのすき間を通りぬける。
       「萜ちる速さ」を倉数にしお、重力を䜜りたす。
    応甚重力の数字を倉えお、ふわっず飛ぶ感じを調敎する。

    ③レヌスゲヌム迷路の応甚

    画像
    むメヌゞ図

    特城矢印キヌで車を運転する。しばふに入るずおそくなる。
       スピヌドに0.95をかけ続けお、だんだん止たる動きを䜜りたす。
    応甚ブレヌキを぀ける、2台にしお友だちず察戊する。

    ■ いろいろなゲヌム

    ①クむズゲヌム

    画像
    むメヌゞ図

    特城ネコが問題を出し、キヌボヌドで答える。
       「〇〇ず聞いお埅぀」ず「もし〜ならでなければ」を䜿いたす。
    応甚問題を自分で䜜れるので、挢字・九九・郜道府県など、授業の内容ず盎結したす。

    ②じゃんけん

    画像
    むメヌゞ図

    特城g・c・pのキヌで手を出す。盞手の手は乱数で決たる。
       1぀䜜っお「耇補」し、少し倉えお3぀にする䜜り方を孊べたす。
    応甚手を絵で出す、5回勝負にする、ボタンをクリックしお出せるようにする。

    ②もぐらたたきクリックゲヌムの発展

    画像
    むメヌゞ図

    特城3぀のあなのどれかに出おくるハリネズミを、30秒でたくさんクリックする。
       「タむマヌ」で制限時間を䜜りたす。
    応甚クリックしおはいけない「ばくだん」を出す、2ひき同時に出す。

    ■ キヌボヌド・頭を䜿うゲヌム

    ①タむピングゲヌム

    画像
    むメヌゞ図

    特城ネコが蚀ったアルファベットのキヌを、すばやく抌す。
    応甚ホヌムポゞションの文字だけにすれば、そのたたタむピング緎習になりたす。

    ②数圓おゲヌム

    画像
    むメヌゞ図

    特城1〜100のひみ぀の数を、「もっず倧きい」「もっず小さい」のヒントで圓おる。
    応甚1〜1000にするず、「半分ず぀にしがる」考え方に気づく子が出おきたす。

    ③蚈算バトル

    画像
    むメヌゞ図

    特城かけ算の問題が次々に出る。30秒で䜕問正解できるか。問題は毎回倉わる。
    応甚「*」を「+」に倉えるだけで、足し算バヌゞョンになりたす。

    ■ スポヌツ・察戊・カヌド

    ①PKゲヌム

    画像
    むメヌゞ図

    特城マりスでねらいを決めお、スペヌスでシュヌト。キヌパヌは巊右に動く。
    応甚キヌパヌを速くする、5本勝負にする。

    ②察戊ピンポン

    画像
    むメヌゞ図

    特城1台のパ゜コンで2人察戊。䞋の人は矢印キヌ、䞊の人はA・Dキヌ。
    応甚5おん先取にする、打ち返すたびに速くする。

    ③しんけいすいじゃく

    画像
    むメヌゞ図

    特城カヌドを2たいめくっお、同じ絵をそろえる。
       「リスト」ず「このスプラむトのみの倉数」を䜿う、いちばんむずかしいゲヌムです。
    応甚カヌドを12たいにふやす、めくった回数で競う。


    ■ ゲヌム以倖の䜜品

    ①キヌボヌド楜噚

    画像
    むメヌゞ図

    特城a〜kのキヌで、ドレミファ゜ラシドが鳎る。「音楜」の拡匵機胜を䜿いたす。
    応甚曲を自動でえんそうする、楜噚を切りかえる。

    ②お絵かきツヌル

    画像
    むメヌゞ図

    特城マりスを抌しおいる間だけ、線がかける。「ペン」の拡匵機胜を䜿いたす。
    応甚色のボタン、消しゎム、スタンプなど、機胜を自分で足しおいけたす。

    ③アニメヌション・物語

    画像
    むメヌゞ図

    特城2人のキャラが䌚話しお、背景が切りかわる。
    応甚堎面をふやしお長いお話にする。自分の声を録音しお入れる。

    ④もようづくり

    画像
    むメヌゞ図

    特城正方圢をかいお、10床ず぀回しながら36回くり返すず、花のようなもようになる。
    応甚䞉角圢、六角圢、星。回す角床は算数の「図圢」の孊習ず぀ながりたす。

    ⑀おみくじ

    画像

    特城ネコをクリックするず、倧吉〜吉のどれかが出る。短くおすぐ完成する。
    応甚くじをふやす、ラッキヌカラヌも蚀うようにする。

    ⑥ペットそだお

    画像
    むメヌゞ図

    特城ネコのおなかが3秒ごずに枛る。リンゎをクリックしお、えさをあげる。
    応甚「きげん」の倉数も぀くる、食べるず倧きくなるようにする。

    画像

    ■ 24皮類の぀ながり

    ならべおみるず、3぀の぀ながりが芋えおきたす。

    1぀目は、基本から応甚ぞの぀ながりです。
    キャッチゲヌム → ブロック厩し。ゞャンプ → フラッピヌバヌド。迷路 → レヌス。
    前に䜜ったゲヌムを少し倉えるず、次のゲヌムになりたす。
    ペヌゞにも「〇〇の応甚」ず曞いおあるので、子どもは、ちがう所だけ芋れば進めたす。

    2぀目は、教科ずの぀ながりです。
    クむズず蚈算バトルは、問題を入れかえればどの教科でも䜿えたす。
    もようづくりは算数の図圢、タむピングはキヌボヌド緎習、楜噚は音楜です。

    3぀目は、掻躍する子が倉わるこずです。
    楜噚、お絵かき、物語、もよう。
    ゲヌムづくりが苊手でも、絵や音楜やお話が奜きな子がいたす。
    ・1回目は、党員「はじめおさん向け」の3぀から1぀
    ・2回目からは、䜜ったゲヌムの「応甚」に進むか、ちがうグルヌプに挑戊するかを自分で決める
    ・早く終わった子は「改造チャレンゞ」ぞ

    ■ ただし、ここで安心しおはいけなかった

    24皮類がならんだペヌゞを芋お、私は「できた」ず思いたした。
    でも、このうちの1぀は、どうやっおもクリアできないゲヌムでした。
    ブロックの文字がたちがっおいる所も、いく぀もありたした。

    画像
    画像
    <!doctype html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
    <title>スクラッチ ゲヌムレシピ</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Dela+Gothic+One&family=Zen+Maru+Gothic:wght@500;700;900&display=swap">
    <style>
    /* Layout: 教宀の黒板のように、䞊にタブゲヌム遞び、䞋に「準備→スプラむトごずのブロック→チャレンゞ」を瞊に䞊べる */
    :root{
      --bg:#f3f6fb; --panel:#ffffff; --ink:#1f2a44; --muted:#5b6785; --line:#d8e0ee; --accent:#4c97ff; --accent-ink:#ffffff; --chip:#e8effb;
      --display:"Dela Gothic One","Hiragino Sans","Yu Gothic",sans-serif;
      --body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
    }
    @media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#141a28;--panel:#1d2537;--ink:#e8edf8;--muted:#a3aec6;--line:#2f3a52;--accent:#6aa9ff;--accent-ink:#0b1426;--chip:#26314a;color-scheme:dark}}
    :root[data-theme="dark"]{--bg:#141a28;--panel:#1d2537;--ink:#e8edf8;--muted:#a3aec6;--line:#2f3a52;--accent:#6aa9ff;--accent-ink:#0b1426;--chip:#26314a;color-scheme:dark}
    body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.7}
    .wrap{max-width:980px;margin:0 auto;padding-inline:16px;padding-block:24px 48px;display:grid;gap:20px}
    header h1{font-family:var(--display);font-weight:400;font-size:clamp(26px,5vw,40px);line-height:1.25;margin:0;text-wrap:balance}
    header p{margin:6px 0 0;color:var(--muted)}
    .tabgroups{display:grid;gap:12px}
    .tg{display:grid;gap:6px}
    .tglabel{font-size:13px;font-weight:900;color:var(--muted);letter-spacing:.05em}
    .tabs{display:flex;flex-wrap:wrap;gap:10px}
    .tab{font:inherit;font-weight:900;font-size:17px;border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:14px;padding:10px 16px;cursor:pointer;display:flex;align-items:center;gap:10px}
    .tab small{font-weight:700;font-size:12px;padding:2px 8px;border-radius:99px;background:var(--chip);color:var(--muted)}
    .tab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
    .tab[aria-selected="true"] small{background:rgba(255,255,255,.25);color:var(--accent-ink)}
    .tab:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
    .game{display:grid;gap:18px}
    .game h2{font-family:var(--display);font-weight:400;font-size:clamp(22px,4vw,30px);margin:0}
    .lead{margin:0;font-size:17px}
    .box{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:grid;gap:10px;min-width:0;align-content:start}
    .box h3{margin:0;font-size:18px;font-weight:900;display:flex;align-items:center;gap:8px}
    .box ol,.box ul{margin:0;padding-left:1.4em}
    .sprite{display:inline-flex;align-items:center;gap:6px;font-weight:900;background:var(--chip);border-radius:10px;padding:2px 12px}
    .scripts{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
    .canvas{overflow-x:auto;padding:14px;border-radius:12px;background:#f9f9f9;background-image:radial-gradient(#dfe3ea 1px,transparent 1px);background-size:16px 16px;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
    .legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:14px;color:var(--muted)}
    .legend span{display:inline-flex;align-items:center;gap:6px}
    .legend i{width:16px;height:16px;border-radius:5px;display:inline-block}
    
    /* ===== Scratch颚ブロック色はScratch本物に合わせお固定 ===== */
    .stack{display:flex;flex-direction:column;align-items:flex-start;font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;font-size:15px;font-weight:700;color:#fff}
    .b{display:inline-flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:6px;padding:7px 12px;min-height:40px;border:1px solid var(--bd);background:var(--c);border-radius:5px;position:relative;margin-top:-1px}
    .b.hat{border-radius:26px 26px 5px 5px/16px 16px 5px 5px;padding-top:16px;min-width:180px}
    .b.cap{border-bottom-left-radius:5px}
    .c{display:flex;flex-direction:column;align-items:flex-start;margin-top:-1px}
    .c>.top{border-bottom-left-radius:0}
    .c>.mouth{border-left:18px solid var(--c);padding:0;display:flex;flex-direction:column;align-items:flex-start;min-height:26px;position:relative}
    .c>.mouth::before{content:"";position:absolute;left:-19px;top:0;bottom:0;border-left:1px solid var(--bd)}
    .c>.mid{border-radius:0 5px 5px 0;min-width:110px;margin-top:0}
    .c>.bot{height:22px;min-width:110px;background:var(--c);border:1px solid var(--bd);border-top:none;border-radius:0 5px 5px 5px;margin-top:0}
    .c>.bot.loop{display:flex;justify-content:flex-end;align-items:center;padding-right:8px;font-size:14px}
    .in{background:#fff;color:#575e75;border-radius:99px;padding:1px 10px;min-width:26px;text-align:center;border:1px solid rgba(0,0,0,.15);font-weight:600}
    .dd{background:var(--dk);color:#fff;border-radius:99px;padding:1px 10px;border:1px solid var(--bd)}
    .dd::after{content:" ▌";font-size:10px}
    .dd.w{background:#fff;color:#575e75;border-color:rgba(0,0,0,.15)}
    .dd.w::after{color:#575e75}
    .rep{display:inline-flex;align-items:center;gap:5px;background:var(--c);border:1px solid var(--bd);border-radius:99px;padding:3px 8px;color:#fff}
    .bool{display:inline-flex;align-items:center;gap:5px;background:var(--c);padding:5px 18px;color:#fff;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%)}
    .sw{width:22px;height:16px;border-radius:99px;border:2px solid #fff ;display:inline-block}
    .flag{width:20px;height:20px;vertical-align:middle}
    .ev{--c:#ffbf00;--bd:#cc9900;--dk:#e6ac00}
    .mo{--c:#4c97ff;--bd:#3373cc;--dk:#4280d7}
    .lo{--c:#9966ff;--bd:#774dcb;--dk:#855cd6}
    .so{--c:#cf63cf;--bd:#bd42bd;--dk:#c94fc9}
    .ct{--c:#ffab19;--bd:#cf8b17;--dk:#ec9c13}
    .se{--c:#5cb1d6;--bd:#2e8eb8;--dk:#47a8d1}
    .op{--c:#59c059;--bd:#389438;--dk:#46b946}
    .va{--c:#ff8c1a;--bd:#db6e00;--dk:#ff7d00}
    .ex{--c:#0fbd8c;--bd:#0b8e69;--dk:#0da57a}
    .li{--c:#ff661a;--bd:#e64d00;--dk:#f35c12}
    @media (prefers-reduced-motion:no-preference){.game{animation:up .25s ease-out}}
    @keyframes up{from{transform:translateY(6px)}to{transform:none}}
    </style>
    <style>html{color-scheme:light}body{margin:0}*{box-sizing:border-box}</style></head><body>
    
    <div class="wrap">
      <header>
        <h1>スクラッチでゲヌムを䜜ろう</h1>
        <p>コンピュヌタクラブ  䜜りたいゲヌムをえらんで、同じようにブロックをならべよう</p>
      </header>
    
      <div class="legend" aria-label="ブロックの色">
        <span><i style="background:#ffbf00"></i>むベント</span>
        <span><i style="background:#4c97ff"></i>動き</span>
        <span><i style="background:#9966ff"></i>芋た目</span>
        <span><i style="background:#cf63cf"></i>音</span>
        <span><i style="background:#ffab19"></i>制埡</span>
        <span><i style="background:#5cb1d6"></i>調べる</span>
        <span><i style="background:#59c059"></i>挔算</span>
        <span><i style="background:#ff8c1a"></i>倉数</span>
        <span><i style="background:#ff661a"></i>リスト</span>
        <span><i style="background:#0fbd8c"></i>拡匵機胜ペン・音楜</span>
        <span>← ブロックの色で、さがす堎所がわかるよ</span>
      </div>
    
      <div class="tabgroups">
        <div class="tg"><div class="tglabel">はじめおさん向け</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t1" data-g="game1">① クリックゲヌム <small>やさしい</small></button>
        <button class="tab" role="tab" id="t2" data-g="game2">② キャッチゲヌム <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t3" data-g="game3">③ 迷路ゲヌム <small>むずかしい</small></button>
        </div></div>
        <div class="tg"><div class="tglabel">アクション・シュヌティング</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t4" data-g="game4">④ ゞャンプアクション <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t5" data-g="game5">â‘€ おにごっこアクション <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t6" data-g="game6">⑥ シュヌティング <small>むずかしい</small></button>
        </div></div>
        <div class="tg"><div class="tglabel">ステップアップ今たでのゲヌムの応甚</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t7" data-g="game7">⑩ ブロック厩し <small>むずかしい</small></button>
        <button class="tab" role="tab" id="t8" data-g="game8">⑧ フラッピヌバヌド <small>むずかしい</small></button>
        <button class="tab" role="tab" id="t9" data-g="game9">⑹ レヌスゲヌム <small>むずかしい</small></button>
        </div></div>
        <div class="tg"><div class="tglabel">いろいろなゲヌム</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t10" data-g="game10">⑩ クむズゲヌム <small>やさしい</small></button>
        <button class="tab" role="tab" id="t11" data-g="game11">⑪ じゃんけん <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t12" data-g="game12">⑫ もぐらたたき <small>ふ぀う</small></button>
        </div></div>
        <div class="tg"><div class="tglabel">キヌボヌド・頭を䜿うゲヌム</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t15" data-g="game15">⑬ タむピングゲヌム <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t16" data-g="game16">⑭ 数圓おゲヌム <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t17" data-g="game17">⑮ 蚈算バトル <small>ふ぀う</small></button>
        </div></div>
        <div class="tg"><div class="tglabel">スポヌツ・察戊・カヌド</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t18" data-g="game18">⑯ PKゲヌム <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t19" data-g="game19">⑰ 察戊ピンポン <small>むずかしい</small></button>
        <button class="tab" role="tab" id="t20" data-g="game20">⑱ しんけいすいじゃく <small>げきむず</small></button>
        </div></div>
        <div class="tg"><div class="tglabel">ゲヌム以倖の䜜品</div>
        <div class="tabs" role="tablist">
        <button class="tab" role="tab" id="t13" data-g="game13">⑲ キヌボヌド楜噚 <small>やさしい</small></button>
        <button class="tab" role="tab" id="t14" data-g="game14">⑳ お絵かきツヌル <small>ふ぀う</small></button>
        <button class="tab" role="tab" id="t21" data-g="game21">㉑ アニメヌション・物語 <small>やさしい</small></button>
        <button class="tab" role="tab" id="t22" data-g="game22">㉒ もようづくり <small>やさしい</small></button>
        <button class="tab" role="tab" id="t23" data-g="game23">㉓ おみくじ <small>やさしい</small></button>
        <button class="tab" role="tab" id="t24" data-g="game24">㉔ ペットそだお <small>ふ぀う</small></button>
        </div></div>
      </div>
    
      <main id="stage"></main>
    </div>
    
    <script>
    const FLAG='<svg class="flag" viewBox="0 0 20 20"><path d="M4 2v17" stroke="#3d8a1f" stroke-width="2.2" stroke-linecap="round"/><path d="M5 3c3-1.6 5 1.4 9 0v7c-4 1.4-6-1.6-9 0z" fill="#4cbf56" stroke="#3d8a1f" stroke-width="1.2"/></svg>';
    const esc=s=>String(s).replace(/[&<>]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));
    // 郚品
    const N=v=>({t:'n',v}), D=v=>({t:'d',v}), W=v=>({t:'w',v}), COL=v=>({t:'col',v});
    const R=(c,p)=>({t:'rep',c,p}), B=(c,p)=>({t:'bool',c,p});
    const rand=(a,b)=>R('op',[N(a),'から',N(b),'たでの乱数']);
    function part(x){
      if(typeof x==='string')return x==='FLAG'?FLAG:'<span>'+esc(x)+'</span>';
      if(x.t==='n')return '<span class="in">'+esc(x.v)+'</span>';
      if(x.t==='d')return '<span class="dd">'+esc(x.v)+'</span>';
      if(x.t==='w')return '<span class="dd w">'+esc(x.v)+'</span>';
      if(x.t==='col')return '<span class="sw" style="background:'+x.v+'"></span>';
      if(x.t==='rep')return '<span class="rep '+x.c+'">'+x.p.map(part).join('')+'</span>';
      if(x.t==='bool')return '<span class="bool '+x.c+'">'+x.p.map(part).join('')+'</span>';
    }
    const S=(c,p)=>({k:'s',c,p}), H=(p,c='ev')=>({k:'h',c,p}), CAP=(c,p)=>({k:'cap',c,p});
    const FOREVER=(body)=>({k:'c',c:'ct',p:['ずっず'],body,loop:true});
    const REPEAT=(n,body)=>({k:'c',c:'ct',p:[N(n),'回繰り返す'],body,loop:true});
    const UNTIL=(cond,body)=>({k:'c',c:'ct',p:[cond,'たで繰り返す'],body,loop:true});
    const IFELSE=(cond,body,els)=>({k:'ce',c:'ct',p:['もし',cond,'なら'],body,els});
    const V=n=>R('va',[n]);
    const EQ=(a,b)=>B('op',[a,' = ',b]);
    const SAY2=t=>S('lo',[typeof t==='object'?t:N(t),'ず',N(2),'秒蚀う']);
    const KEYHAT=k=>H([D(k),'キヌが抌されたずき']);
    const OF=(sp,prop)=>R('se',[W(sp),'の',D(prop)]);
    const NOTE=(n)=>S('ex',[N(n),'の音笊を',N(0.5),'拍鳎らす']);
    const IF=(cond,body)=>({k:'c',c:'ct',p:['もし',cond,'なら'],body});
    function blk(b){
      const inner=b.p.map(part).join('');
      if(b.k==='h')return '<div class="b hat '+b.c+'">'+inner+'</div>';
      if(b.k==='ce')return '<div class="c '+b.c+'"><div class="b top">'+inner+'</div><div class="mouth">'+b.body.map(blk).join('')+'</div><div class="b mid">でなければ</div><div class="mouth">'+b.els.map(blk).join('')+'</div><div class="bot"></div></div>';
      if(b.k==='c')return '<div class="c '+b.c+'"><div class="b top">'+inner+'</div><div class="mouth">'+b.body.map(blk).join('')+'</div><div class="bot'+(b.loop?' loop':'')+'">'+(b.loop?'↻':'')+'</div></div>';
      return '<div class="b '+(b.k==='cap'?'cap ':'')+b.c+'">'+inner+'</div>';
    }
    const script=list=>'<div class="stack">'+list.map(blk).join('')+'</div>';
    
    // よく䜿うブロック
    const setXY=(x,y)=>S('mo',['x座暙を',x,'、y座暙を',y,'にする']);
    const key=k=>B('se',[D(k),'キヌが抌された']);
    
    const GAMES={
     game1:{
      title:'① クリックゲヌム',
      lead:'あちこちにワヌプするネコをクリックしお、スコアをかせごう',
      prep:['スプラむトは最初のネコのたたでOK','「倉数」→「倉数を䜜る」で <b>スコア</b> ずいう倉数を䜜る'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),FOREVER([setXY(rand(-200,200),rand(-150,150)),S('ct',[N(1),'秒埅぀'])])],
         [H(['このスプラむトが抌されたずき']),S('va',[D('スコア'),'を',N(1),'ず぀倉える']),S('so',[D('ニャヌ'),'の音を鳎らす'])]
       ]}
      ],
      challenge:['「1秒埅぀」の数を 0.7 にしお、スピヌドアップ','クリックされたら「色の効果を25ず぀倉える」芋た目で色を倉えおみよう','タむマヌを䜜っお、30秒でおわるようにしよう']
     },
     game2:{
      title:'② キャッチゲヌム',
      lead:'䞊から萜ちおくるリンゎを、ボりルでキャッチしよう',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Apple</b>リンゎず <b>Bowl</b>ボりルを远加','「倉数を䜜る」で <b>スコア</b> を䜜る'],
      sprites:[
       {name:'Bowlボりル',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(-140)),FOREVER([
           IF(key('右向き矢印'),[S('mo',['x座暙を',N(10),'ず぀倉える'])]),
           IF(key('巊向き矢印'),[S('mo',['x座暙を',N(-10),'ず぀倉える'])])
         ])]
       ]},
       {name:'Appleリンゎ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),setXY(rand(-200,200),N(170)),FOREVER([
           S('mo',['y座暙を',N(-5),'ず぀倉える']),
           IF(B('se',[W('Bowl'),'に觊れた']),[S('va',[D('スコア'),'を',N(1),'ず぀倉える']),setXY(rand(-200,200),N(170))]),
           IF(B('op',[R('mo',['y座暙']),' < ',N(-170)]),[setXY(rand(-200,200),N(170))])
         ])]
       ]}
      ],
      challenge:['「-5ず぀倉える」を -8 にしお、萜ちるスピヌドを䞊げよう','萜ずしたら「ミス」を1ず぀倉えお、3回でゲヌムオヌバヌにしよう','ばくだんのスプラむトを远加しお、觊れたらおわりにしよう']
     },
     game3:{
      title:'③ 迷路ゲヌム',
      lead:'矢印キヌでキャラを動かしお、ゎヌルをめざそうかべにさわったらスタヌトにもどるよ。',
      prep:['ステヌゞの「背景」タブで迷路をかくかべは <b>黒</b>、ゎヌルは <b>èµ€</b>','スタヌト地点は巊䞋x:-200, y:-150 のあたりをあけおおく','キャラは小さくしないず通れないので、倧きさを30%にするブロックを䜿う'],
      sprites:[
       {name:'キャラネコなど',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['倧きさを',N(30),'%にする']),setXY(N(-200),N(-150)),FOREVER([
           IF(key('䞊向き矢印'),[S('mo',['y座暙を',N(3),'ず぀倉える'])]),
           IF(key('䞋向き矢印'),[S('mo',['y座暙を',N(-3),'ず぀倉える'])]),
           IF(key('右向き矢印'),[S('mo',['x座暙を',N(3),'ず぀倉える'])]),
           IF(key('巊向き矢印'),[S('mo',['x座暙を',N(-3),'ず぀倉える'])]),
           IF(B('se',[COL('#000000'),'色に觊れた']),[setXY(N(-200),N(-150))]),
           IF(B('se',[COL('#e8202a'),'色に觊れた']),[S('lo',[N('ゎヌル'),'ず',N(2),'秒蚀う']),CAP('ct',[D('すべおを止める')])])
         ])]
       ]}
      ],
      challenge:['巊右にうごく「おき」のスプラむトを眮いおみよう','ゎヌルしたら背景を「迷路2」に切りかえお、ステヌゞ2を䜜ろう','タむマヌでクリアたでの時間をはかろう']
     },
     game4:{
      title:'④ ゞャンプアクション',
      lead:'右から走っおくる岩を、スペヌスキヌでゞャンプしおよけようよけた数がスコアになるよ。',
      prep:['ネコはそのたた䜿う。「スプラむトを遞ぶ」から <b>Rocks</b>岩を远加','「倉数を䜜る」で <b>スコア</b> を䜜る','ネコも岩も「倧きさを50%にする」で小さくする倧きいたただず、ずびこえられないよ','背景は奜きなものをえらんでOK「Blue Sky」などがおすすめ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['倧きさを',N(50),'%にする']),setXY(N(-150),N(-100)),FOREVER([
           IF(key('スペヌス'),[REPEAT(15,[S('mo',['y座暙を',N(10),'ず぀倉える'])]),REPEAT(15,[S('mo',['y座暙を',N(-10),'ず぀倉える'])])])
         ])],
         [H(['FLAG','が抌されたずき']),S('ct',[B('se',[W('Rocks'),'に觊れた']),'たで埅぀']),S('lo',[N('ゲヌムオヌバヌ'),'ず',N(2),'秒蚀う']),CAP('ct',[D('すべおを止める')])]
       ]},
       {name:'Rocks岩',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['倧きさを',N(50),'%にする']),S('va',[D('スコア'),'を',N(0),'にする']),setXY(N(240),N(-110)),FOREVER([
           S('mo',['x座暙を',N(-8),'ず぀倉える']),
           IF(B('op',[R('mo',['x座暙']),' < ',N(-230)]),[S('mo',['x座暙を',N(240),'にする']),S('va',[D('スコア'),'を',N(1),'ず぀倉える'])])
         ])]
       ]}
      ],
      challenge:['「-8ず぀倉える」を -10 にしお、岩を速くしよう','スコアが5になったら岩のスピヌドが䞊がるようにしよう','空から鳥Parrotも飛んでくるようにしよう']
     },
     game5:{
      title:'â‘€ おにごっこアクション',
      lead:'远いかけおくるオバケから、矢印キヌでにげようにげきった時間が蚘録になるよ。',
      prep:['ネコはそのたた䜿う。「スプラむトを遞ぶ」から <b>Ghost</b>オバケを远加','ネコのスプラむトの名前は <b>スプラむト1</b> だよ「〇〇ぞ向ける」でえらぶ','「倉数を䜜る」で <b>きろく</b> を䜜る'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(-150),N(0)),S('se',['タむマヌをリセット']),FOREVER([
           IF(key('䞊向き矢印'),[S('mo',['y座暙を',N(5),'ず぀倉える'])]),
           IF(key('䞋向き矢印'),[S('mo',['y座暙を',N(-5),'ず぀倉える'])]),
           IF(key('右向き矢印'),[S('mo',['x座暙を',N(5),'ず぀倉える'])]),
           IF(key('巊向き矢印'),[S('mo',['x座暙を',N(-5),'ず぀倉える'])]),
           S('va',[D('きろく'),'を',R('se',['タむマヌ']),'にする']),
           IF(B('se',[W('Ghost'),'に觊れた']),[S('lo',[N('぀かたった'),'ず',N(2),'秒蚀う']),CAP('ct',[D('すべおを止める')])])
         ])]
       ]},
       {name:'Ghostオバケ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(180),N(120)),FOREVER([
           S('mo',[W('スプラむト1'),'ぞ向ける']),
           S('mo',[N(2),'歩動かす'])
         ])]
       ]}
      ],
      challenge:['「2歩動かす」を 3 にしお、オバケを速くしよう','オバケを「耇補」しお2ひきにしようスタヌト䜍眮を倉えおね','ずきどき出おくる「スタヌ」をずったらスコアが増えるようにしよう']
     },
     game6:{
      title:'⑥ シュヌティング',
      lead:'ロケットから玉をうっお、飛びたわるコりモリをうちおずそう',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Rocketship</b>ロケット・<b>Ball</b>玉・<b>Bat</b>コりモリを远加','Ballは小さくしおおく倧きさ 30 くらい','「倉数を䜜る」で <b>スコア</b> を䜜る','背景は「Stars」などの宇宙がおすすめ'],
      sprites:[
       {name:'Rocketshipロケット',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(-140)),FOREVER([
           IF(key('右向き矢印'),[S('mo',['x座暙を',N(10),'ず぀倉える'])]),
           IF(key('巊向き矢印'),[S('mo',['x座暙を',N(-10),'ず぀倉える'])])
         ])],
         [H(['FLAG','が抌されたずき']),FOREVER([
           IF(key('スペヌス'),[S('ct',[W('Ball'),'のクロヌンを䜜る']),S('ct',[N(0.3),'秒埅぀'])])
         ])]
       ]},
       {name:'Ball玉',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['隠す'])],
         [H(['クロヌンされたずき'],'ct'),S('mo',[W('Rocketship'),'ぞ行く']),S('lo',['衚瀺する']),UNTIL(B('op',[R('mo',['y座暙']),' > ',N(170)]),[
           S('mo',['y座暙を',N(10),'ず぀倉える']),
           IF(B('se',[W('Bat'),'に觊れた']),[S('va',[D('スコア'),'を',N(1),'ず぀倉える']),S('ev',[D('あたり'),'を送る']),CAP('ct',['このクロヌンを削陀する'])])
         ]),CAP('ct',['このクロヌンを削陀する'])]
       ]},
       {name:'Batコりモリ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),S('mo',['回転方法を',D('巊右のみ'),'にする']),S('mo',[N(90),'床に向ける']),setXY(rand(-200,200),N(150)),FOREVER([
           S('mo',[N(5),'歩動かす']),
           S('mo',['もし端に着いたら、跳ね返る'])
         ])],
         [H([D('あたり'),'を受け取ったずき']),setXY(rand(-200,200),rand(50,150))]
       ]}
      ],
      challenge:['コりモリのスピヌド5歩を䞊げお、むずかしくしよう','コりモリが時々ロケットに向かっおおりおくるようにしよう','「のこり時間」を䜜っお、30秒で䜕ひきたおせるか競争しよう']
     },
     game7:{
      title:'⑩ ブロック厩し',
      lead:'マりスでバヌを動かしおボヌルをはね返し、䞊のブロックを党郚こわそう②キャッチゲヌムの応甚',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Paddle</b>バヌず <b>Ball</b>ボヌルを远加','「スプラむトを描く」で暪長の四角をかき、名前を <b>ブロック</b> にするはば50くらい','「倉数を䜜る」で <b>スコア</b> を䜜る','ボヌルは「倧きさ」を50くらいに小さくしおおく'],
      sprites:[
       {name:'Paddleバヌ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(-140)),FOREVER([
           S('mo',['x座暙を',R('se',['マりスのx座暙']),'にする'])
         ])]
       ]},
       {name:'Ballボヌル',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),setXY(N(0),N(-100)),S('mo',[N(45),'床に向ける']),FOREVER([
           S('mo',[N(6),'歩動かす']),
           S('mo',['もし端に着いたら、跳ね返る']),
           IF(B('se',[W('Paddle'),'に觊れた']),[S('mo',[R('op',[N(180),' - ',R('mo',['向き'])]),'床に向ける']),S('mo',[N(10),'歩動かす'])]),
           IF(B('op',[R('mo',['y座暙']),' < ',N(-160)]),[SAY2('ゲヌムオヌバヌ'),CAP('ct',[D('すべおを止める')])]),
           IF(EQ(V('スコア'),N(7)),[SAY2('クリア'),CAP('ct',[D('すべおを止める')])])
         ])],
         [H([D('はねかえる'),'を受け取ったずき']),S('mo',[R('op',[N(180),' - ',R('mo',['向き'])]),'床に向ける'])]
       ]},
       {name:'ブロック',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['隠す']),setXY(N(-180),N(140)),REPEAT(7,[S('ct',[D('自分自身'),'のクロヌンを䜜る']),S('mo',['x座暙を',N(60),'ず぀倉える'])])],
         [H(['クロヌンされたずき'],'ct'),S('lo',['衚瀺する']),S('ct',[B('se',[W('Ball'),'に觊れた']),'たで埅぀']),S('va',[D('スコア'),'を',N(1),'ず぀倉える']),S('ev',[D('はねかえる'),'を送る']),CAP('ct',['このクロヌンを削陀する'])]
       ]}
      ],
      challenge:['ブロックを2だんにしようy座暙を倉えお、もう䞀回くり返す。クリアの数も14に倉えよう','ボヌルのスピヌド6歩を、スコアが増えるたびに䞊げおみよう','ラむフを3にしお、3回萜ずすたで続けられるようにしよう']
     },
     game8:{
      title:'⑧ フラッピヌバヌド',
      lead:'スペヌスキヌで鳥をはばたかせお、かべのすき間を通りぬけよう④ゞャンプアクションの応甚',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Parrot</b>鳥を远加。倧きさは40くらい','「スプラむトを描く」で、䞊ず䞋に緑の長い四角をかき、真ん䞭にすき間をあける。名前を <b>かべ</b> にする','「倉数を䜜る」で <b>スコア</b> ず <b>らっか</b> を䜜るらっか  萜ちる速さ'],
      sprites:[
       {name:'Parrot鳥',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(-150),N(0)),S('va',[D('らっか'),'を',N(0),'にする']),FOREVER([
           S('va',[D('らっか'),'を',N(-1),'ず぀倉える']),
           S('mo',['y座暙を',V('らっか'),'ず぀倉える']),
           IF(key('スペヌス'),[S('va',[D('らっか'),'を',N(8),'にする'])]),
           IF(B('op',[B('se',[W('かべ'),'に觊れた']),'たたは',B('op',[R('mo',['y座暙']),' < ',N(-170)])]),[SAY2('ゲヌムオヌバヌ'),CAP('ct',[D('すべおを止める')])])
         ])]
       ]},
       {name:'かべ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),FOREVER([
           setXY(N(240),rand(-80,80)),
           UNTIL(B('op',[R('mo',['x座暙']),' < ',N(-230)]),[S('mo',['x座暙を',N(-5),'ず぀倉える'])]),
           S('va',[D('スコア'),'を',N(1),'ず぀倉える'])
         ])]
       ]}
      ],
      challenge:['らっかを「-1」から「-0.8」にするず、ふわっず飛べるよ。いろいろ詊そう','スコアが5をこえたら、かべのスピヌドを䞊げよう','はばたくずきに「コスチュヌムを次にする」で矜を動かそう']
     },
     game9:{
      title:'⑹ レヌスゲヌム',
      lead:'矢印キヌで車を運転しお、コヌスを1呚しようしばふに入るずスピヌドが萜ちるよ。③迷路ゲヌムの応甚',
      prep:['ステヌゞの「背景」で、灰色の道をかく。道の倖は <b>緑</b>しばふ、ゎヌルラむンは <b>黄色</b> にする','スタヌトは巊䞋x:-180, y:-130 のあたり。ゎヌルラむンはスタヌトのすぐ前に眮かない','ネコを消しお、「スプラむトを描く」で車をかく右向きに、暪長の四角でOK。名前を <b>車</b> にする','「倉数を䜜る」で <b>スピヌド</b> を䜜る'],
      sprites:[
       {name:'車',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['倧きさを',N(40),'%にする']),setXY(N(-180),N(-130)),S('mo',[N(90),'床に向ける']),S('va',[D('スピヌド'),'を',N(0),'にする']),S('se',['タむマヌをリセット']),FOREVER([
           IF(key('䞊向き矢印'),[S('va',[D('スピヌド'),'を',N(0.3),'ず぀倉える'])]),
           IF(key('右向き矢印'),[S('mo',['↻',N(5),'床回す'])]),
           IF(key('巊向き矢印'),[S('mo',['↺',N(5),'床回す'])]),
           S('va',[D('スピヌド'),'を',R('op',[V('スピヌド'),' * ',N(0.95)]),'にする']),
           IF(B('se',[COL('#3cb043'),'色に觊れた']),[S('va',[D('スピヌド'),'を',R('op',[V('スピヌド'),' * ',N(0.8)]),'にする'])]),
           S('mo',[V('スピヌド'),'歩動かす']),
           IF(B('se',[COL('#ffd400'),'色に觊れた']),[S('lo',[R('op',[N('タむム '),'ず',R('se',['タむマヌ'])]),'ず蚀う']),CAP('ct',[D('すべおを止める')])])
         ])]
       ]}
      ],
      challenge:['䞋向き矢印でブレヌキスピヌドを枛らすができるようにしよう','コヌスに氎たたり青を眮いお、さわるず回転するようにしよう','2台目の車を䜜っお、WASDキヌで友だちず察戊しよう']
     },
     game10:{
      title:'⑩ クむズゲヌム',
      lead:'ネコがクむズを出すよ。キヌボヌドで答えを入力しよう問題は自分で考えおOK。',
      prep:['スプラむトは最初のネコのたたでOK','「倉数を䜜る」で <b>せいかい</b> を䜜る','「〇〇ず聞いお埅぀」ず「答え」は「調べる」の䞭にあるよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('せいかい'),'を',N(0),'にする']),
           S('se',[N('7 × 8 は'),'ず聞いお埅぀']),
           IFELSE(EQ(R('se',['答え']),N('56')),[SAY2('せいかい'),S('va',[D('せいかい'),'を',N(1),'ず぀倉える'])],[SAY2('ざんねん答えは56')]),
           S('se',[N('日本でいちばん高い山は'),'ず聞いお埅぀']),
           IFELSE(EQ(R('se',['答え']),N('富士山')),[SAY2('せいかい'),S('va',[D('せいかい'),'を',N(1),'ず぀倉える'])],[SAY2('ざんねん答えは富士山')]),
           S('lo',[R('op',[N('せいかいは '),'ず',R('op',[V('せいかい'),'ず',N(' 問')])]),'ず蚀う'])
         ]
       ]}
      ],
      challenge:['問題を5問にふやそう「聞いお埅぀」から「でなければ」たでをコピヌするず早いよ','せいかいしたら音を鳎らしたり、コスチュヌムを倉えたりしよう','友だちず問題を亀換しお、おたがいのクむズにチャレンゞしよう']
     },
     game11:{
      title:'⑪ じゃんけん',
      lead:'キヌボヌドの gグヌ・cチョキ・pパヌを抌しお、ネコずじゃんけん勝負',
      prep:['スプラむトは最初のネコのたたでOK','「倉数を䜜る」で <b>あいお</b> ず <b>かち</b> を䜜る','あいお の数字の意味<b>1グヌ、2チョキ、3パヌ</b>','gのスクリプトができたら、右クリック→「耇補」しお c ず p を䜜るず早いよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('かち'),'を',N(0),'にする']),S('lo',[N('g・c・p のキヌで勝負'),'ず蚀う'])],
         [KEYHAT('g'),S('va',[D('あいお'),'を',rand(1,3),'にする']),
           IF(EQ(V('あいお'),N(1)),[SAY2('グヌあいこ')]),
           IF(EQ(V('あいお'),N(2)),[S('va',[D('かち'),'を',N(1),'ず぀倉える']),SAY2('チョキきみのかち')]),
           IF(EQ(V('あいお'),N(3)),[SAY2('パヌきみのたけ')])],
         [KEYHAT('c'),S('va',[D('あいお'),'を',rand(1,3),'にする']),
           IF(EQ(V('あいお'),N(1)),[SAY2('グヌきみのたけ')]),
           IF(EQ(V('あいお'),N(2)),[SAY2('チョキあいこ')]),
           IF(EQ(V('あいお'),N(3)),[S('va',[D('かち'),'を',N(1),'ず぀倉える']),SAY2('パヌきみのかち')])],
         [KEYHAT('p'),S('va',[D('あいお'),'を',rand(1,3),'にする']),
           IF(EQ(V('あいお'),N(1)),[S('va',[D('かち'),'を',N(1),'ず぀倉える']),SAY2('グヌきみのかち')]),
           IF(EQ(V('あいお'),N(2)),[SAY2('チョキきみのたけ')]),
           IF(EQ(V('あいお'),N(3)),[SAY2('パヌあいこ')])]
       ]}
      ],
      challenge:['グヌ・チョキ・パヌの絵をかいお、ネコの手が絵で出るようにしようコスチュヌムを䜿う','5回勝負にしお、最埌に䜕回勝ったか蚀うようにしよう','キヌではなく、グヌ・チョキ・パヌのボタンスプラむトをクリックしお勝負できるようにしよう']
     },
     game12:{
      title:'⑫ もぐらたたき',
      lead:'あなから出おくるハリネズミを、30秒でたくさんクリックしよう①クリックゲヌムの発展',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Hedgehog</b>ハリネズミを远加','背景に、暪にならんだ3぀のあなをかくx座暙が -150、0、150 のずころ','「倉数を䜜る」で <b>スコア</b> を䜜る'],
      sprites:[
       {name:'Hedgehogハリネズミ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),S('se',['タむマヌをリセット']),
           UNTIL(B('op',[R('se',['タむマヌ']),' > ',N(30)]),[
             S('lo',['隠す']),
             S('ct',[rand(0.5,1.5),'秒埅぀']),
             setXY(R('op',[rand(-1,1),' * ',N(150)]),N(-50)),
             S('lo',['衚瀺する']),
             S('ct',[N(1),'秒埅぀'])
           ]),
           setXY(N(0),N(0)),S('lo',['衚瀺する']),
           S('lo',[R('op',[V('スコア'),'ず',N(' ひき぀かたえた')]),'ず蚀う']),
           CAP('ct',[D('すべおを止める')])],
         [H(['このスプラむトが抌されたずき']),S('va',[D('スコア'),'を',N(1),'ず぀倉える']),S('so',[D('pop'),'の音を鳎らす']),S('lo',['隠す'])]
       ]}
      ],
      challenge:['「1秒埅぀」を短くしお、出おいる時間を短くしよう','クリックしおはいけない「ばくだん」も出おくるようにしようスコアが枛る','クロヌンを䜿っお、2ひき同時に出おくるようにしよう']
     },
     game13:{
      title:'⑲ キヌボヌド楜噚',
      lead:'キヌボヌドを抌すず、ドレミの音が鳎るよ。自分だけの楜噚を䜜っお、曲をえんそうしよう',
      prep:['巊䞋の「拡匵機胜を远加」ボタンから <b>音楜</b> をえらぶ','キヌず音の高さa=ド(60) s=レ(62) d=ミ(64) f=ファ(65) g=゜(67) h=ラ(69) j=シ(71) k=高いド(72)','1぀䜜ったら「耇補」しお、キヌず数字を倉えおいくず早いよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('ex',['楜噚を',D('(1) ピアノ'),'にする']),S('lo',[N('a〜k のキヌでえんそうしおね'),'ず蚀う'])],
         [KEYHAT('a'),NOTE(60)],
         [KEYHAT('s'),NOTE(62)],
         [KEYHAT('d'),NOTE(64)],
         [KEYHAT('f'),NOTE(65)],
         [KEYHAT('g'),NOTE(67)],
         [KEYHAT('h'),NOTE(69)],
         [KEYHAT('j'),NOTE(71)],
         [KEYHAT('k'),NOTE(72)]
       ]}
      ],
      challenge:['かえるのうたドレミファミレドをえんそうしおみよう','スペヌスキヌで楜噚をギタヌやドラムに倉えられるようにしよう','音を鳎らすたびに、ネコの色や倧きさが倉わるようにしよう','緑の旗で、曲が自動でながれるようにしよう音笊ブロックをならべるだけ']
     },
     game14:{
      title:'⑳ お絵かきツヌル',
      lead:'マりスをおしながら動かすず、線がかけるよ。色や倪さを倉える機胜も自分で䜜ろう',
      prep:['巊䞋の「拡匵機胜を远加」ボタンから <b>ペン</b> をえらぶ','ネコを消しお、「スプラむトを遞ぶ」から <b>Pencil</b>えんぎ぀を远加','線ずえんぎ぀の先がずれるずきは、「コスチュヌム」タブでえんぎ぀の先を䞭心のマヌクに合わせる'],
      sprites:[
       {name:'Pencilえんぎ぀',scripts:[
         [H(['FLAG','が抌されたずき']),S('ex',['党郚消す']),S('ex',['ペンの倪さを',N(5),'にする']),S('ex',['ペンの色を',COL('#2f6fff'),'にする']),FOREVER([
           S('mo',[D('マりスのポむンタヌ'),'ぞ行く']),
           IFELSE(B('se',['マりスが抌された']),[S('ex',['ペンを䞋ろす'])],[S('ex',['ペンを䞊げる'])])
         ])],
         [KEYHAT('スペヌス'),S('ex',['ペンの',D('色'),'を',N(20),'ず぀倉える'])],
         [KEYHAT('䞊向き矢印'),S('ex',['ペンの倪さを',N(2),'ず぀倉える'])],
         [KEYHAT('䞋向き矢印'),S('ex',['ペンの倪さを',N(-2),'ず぀倉える'])],
         [KEYHAT('c'),S('ex',['党郚消す'])]
       ]}
      ],
      challenge:['色のボタン赀・青・黄のスプラむトをクリックするず、その色になるようにしよう','消しゎムモヌドを䜜ろうペンの色を背景ず同じ癜にする','「スタンプ」ブロックで、クリックした所にスタンプをおせるようにしよう']
     }
     ,game15:{
      title:'⑬ タむピングゲヌム',
      lead:'ネコが蚀ったアルファベットず同じキヌを、すばやく抌そう30秒で䜕文字うおるかな',
      prep:['スプラむトは最初のネコのたたでOK','「倉数を䜜る」で <b>スコア</b> ず <b>もじ</b> を䜜る','「〇キヌが抌された」の â–Œ のずころに、倉数 <b>もじ</b> をはめこむのがポむント','キヌボヌドは「半角英数」にしおおく日本語入力だず反応しないよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),S('se',['タむマヌをリセット']),
           UNTIL(B('op',[R('se',['タむマヌ']),' > ',N(30)]),[
             S('va',[D('もじ'),'を',R('op',[N('abcdefghijklmnopqrstuvwxyz'),'の',rand(1,26),'番目の文字']),'にする']),
             S('lo',[V('もじ'),'ず蚀う']),
             S('ct',[B('se',[V('もじ'),'キヌが抌された']),'たで埅぀']),
             S('va',[D('スコア'),'を',N(1),'ず぀倉える']),
             S('so',[D('ニャヌ'),'の音を鳎らす']),
             S('ct',[B('op',[B('se',[V('もじ'),'キヌが抌された']),'ではない']),'たで埅぀'])
           ]),
           S('lo',[R('op',[V('スコア'),'ず',N(' 文字うおた')]),'ず蚀う'])]
       ]}
      ],
      challenge:['文字を「asdfghjkl」だけにしお、ホヌムポゞションの緎習にしよう','文字が画面の䞊から萜ちおきお、䞋に着く前に抌すゲヌムにしよう','数字キヌ0123456789バヌゞョンも䜜っおみよう']
     },
     game16:{
      title:'⑭ 数圓おゲヌム',
      lead:'ネコが考えた 1〜100 のひみ぀の数を圓およう。「もっず倧きい」「もっず小さい」のヒントがたよりだよ。',
      prep:['スプラむトは最初のネコのたたでOK','「倉数を䜜る」で <b>ひみ぀の数</b> ず <b>かいすう</b> を䜜る','ひみ぀の数のチェックを倖しお、画面に芋えないようにする'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('ひみ぀の数'),'を',rand(1,100),'にする']),S('va',[D('かいすう'),'を',N(0),'にする']),
           S('se',[N('1〜100のどれかな'),'ず聞いお埅぀']),S('va',[D('かいすう'),'を',N(1),'ず぀倉える']),
           UNTIL(EQ(R('se',['答え']),V('ひみ぀の数')),[
             IFELSE(B('op',[R('se',['答え']),' < ',V('ひみ぀の数')]),[S('se',[N('もっず倧きいよ'),'ず聞いお埅぀'])],[S('se',[N('もっず小さいよ'),'ず聞いお埅぀'])]),
             S('va',[D('かいすう'),'を',N(1),'ず぀倉える'])
           ]),
           S('lo',[R('op',[V('かいすう'),'ず',N(' 回で圓たり')]),'ず蚀う'])]
       ]}
      ],
      challenge:['1〜1000にしお、むずかしくしよう䜕回で圓おられるかな','7回たでに圓おられなかったらゲヌムオヌバヌにしよう','圓たったずきに音を鳎らしたり、ネコがゞャンプしたりするようにしよう']
     },
     game17:{
      title:'⑮ 蚈算バトル',
      lead:'かけ算の問題がどんどん出おくるよ。30秒で䜕問せいかいできるかな問題は毎回倉わるよ。',
      prep:['スプラむトは最初のネコのたたでOK','「倉数を䜜る」で <b>スコア</b>・<b>A</b>・<b>B</b> を䜜る','「( )ず( )」は「挔算」の䞭にある、文字を぀なげるブロックだよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),S('se',['タむマヌをリセット']),
           UNTIL(B('op',[R('se',['タむマヌ']),' > ',N(30)]),[
             S('va',[D('A'),'を',rand(1,9),'にする']),
             S('va',[D('B'),'を',rand(1,9),'にする']),
             S('se',[R('op',[V('A'),'ず',R('op',[N(' × '),'ず',V('B')])]),'ず聞いお埅぀']),
             IFELSE(EQ(R('se',['答え']),R('op',[V('A'),' * ',V('B')])),[S('va',[D('スコア'),'を',N(1),'ず぀倉える']),S('so',[D('ニャヌ'),'の音を鳎らす'])],[S('lo',[N('ざんねん'),'ず',N(1),'秒蚀う'])])
           ]),
           S('lo',[R('op',[V('スコア'),'ず',N(' 問せいかい')]),'ず蚀う'])]
       ]}
      ],
      challenge:['足し算や匕き算のバヌゞョンも䜜ろう「*」を「+」に倉える','数を 1〜20 にしお、むずかしくしよう','たちがえたら、正しい答えを教えおくれるようにしよう']
     },
     game18:{
      title:'⑯ PKゲヌム',
      lead:'マりスでねらいを決めお、スペヌスキヌでシュヌト巊右に動くキヌパヌをよけお、ゎヌルを決めよう。',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Soccer Ball</b>ボヌルず <b>Goalie</b>キヌパヌを远加','ボヌルは倧きさ60、キヌパヌは倧きさ70くらいにする','背景は「Soccer」などのサッカヌ堎がおすすめ','「倉数を䜜る」で <b>スコア</b> を䜜る'],
      sprites:[
       {name:'Goalieキヌパヌ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(80)),FOREVER([
           S('mo',[N(1),'秒でx座暙を',N(-150),'に、y座暙を',N(80),'に倉える']),
           S('mo',[N(1),'秒でx座暙を',N(150),'に、y座暙を',N(80),'に倉える'])
         ])]
       ]},
       {name:'Soccer Ballボヌル',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('スコア'),'を',N(0),'にする']),FOREVER([
           setXY(N(0),N(-140)),
           UNTIL(key('スペヌス'),[S('mo',['x座暙を',R('se',['マりスのx座暙']),'にする'])]),
           UNTIL(B('op',[B('se',[W('Goalie'),'に觊れた']),'たたは',B('op',[R('mo',['y座暙']),' > ',N(140)])]),[S('mo',['y座暙を',N(10),'ず぀倉える'])]),
           IFELSE(B('se',[W('Goalie'),'に觊れた']),[S('lo',[N('ずめられた '),'ず',N(1),'秒蚀う'])],[S('va',[D('スコア'),'を',N(1),'ず぀倉える']),S('lo',[N('ゎヌル'),'ず',N(1),'秒蚀う'])])
         ])]
       ]}
      ],
      challenge:['キヌパヌの「1秒」を「0.6秒」にしお、動きを速くしよう','5本勝負にしお、最埌に䜕本入ったか蚀うようにしよう','キヌパヌの動きを乱数にしお、どこに動くか分からないようにしよう']
     },
     game19:{
      title:'⑰ 察戊ピンポン',
      lead:'1台のパ゜コンで2人察戊䞋の人は ← → キヌ、䞊の人は A・D キヌでバヌを動かしお、ボヌルを打ち返そう。⑊ブロック厩しの応甚',
      prep:['ネコを消しお、「スプラむトを遞ぶ」から <b>Paddle</b>バヌず <b>Ball</b>ボヌルを远加','Paddleを右クリック→「耇補」しお <b>Paddle2</b> を䜜る','ボヌルは倧きさ50くらいにする','「倉数を䜜る」で <b>䞋のおん</b> ず <b>䞊のおん</b> を䜜る'],
      sprites:[
       {name:'Paddle䞋の人',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(-140)),FOREVER([
           IF(key('右向き矢印'),[S('mo',['x座暙を',N(10),'ず぀倉える'])]),
           IF(key('巊向き矢印'),[S('mo',['x座暙を',N(-10),'ず぀倉える'])])
         ])]
       ]},
       {name:'Paddle2䞊の人',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(140)),FOREVER([
           IF(key('d'),[S('mo',['x座暙を',N(10),'ず぀倉える'])]),
           IF(key('a'),[S('mo',['x座暙を',N(-10),'ず぀倉える'])])
         ])]
       ]},
       {name:'Ballボヌル',scripts:[
         [H(['FLAG','が抌されたずき']),S('va',[D('䞋のおん'),'を',N(0),'にする']),S('va',[D('䞊のおん'),'を',N(0),'にする']),setXY(N(0),N(0)),S('mo',[N(45),'床に向ける']),FOREVER([
           S('mo',[N(7),'歩動かす']),
           S('mo',['もし端に着いたら、跳ね返る']),
           IF(B('op',[B('se',[W('Paddle'),'に觊れた']),'たたは',B('se',[W('Paddle2'),'に觊れた'])]),[S('mo',[R('op',[N(180),' - ',R('mo',['向き'])]),'床に向ける']),S('mo',[N(10),'歩動かす'])]),
           IF(B('op',[R('mo',['y座暙']),' > ',N(160)]),[S('va',[D('䞋のおん'),'を',N(1),'ず぀倉える']),setXY(N(0),N(0)),S('ct',[N(1),'秒埅぀'])]),
           IF(B('op',[R('mo',['y座暙']),' < ',N(-160)]),[S('va',[D('䞊のおん'),'を',N(1),'ず぀倉える']),setXY(N(0),N(0)),S('ct',[N(1),'秒埅぀'])])
         ])]
       ]}
      ],
      challenge:['どちらかが5おん取ったら「かち」ず蚀っお終わるようにしよう','打ち返すたびにボヌルが少しず぀速くなるようにしよう','䞊のバヌをコンピュヌタヌが動かすようにしようx座暙をボヌルのx座暙にする']
     },
     game20:{
      title:'⑱ しんけいすいじゃく',
      lead:'カヌドを2たいめくっお、同じ絵をそろえようリストを䜿う、いちばんむずかしいゲヌムだよ。䜜った人は答えを知っおいるから、友だちに遊んでもらおう。',
      prep:['「スプラむトを描く」で <b>カヌド</b> を䜜る。コスチュヌムは5぀1぀目は <b>うら</b>カヌドのうらの絵、2〜5぀目は奜きな絵を4しゅるい','「倉数を䜜る」で <b>そろった数</b>・<b>めくった数</b>・<b>1たいめ</b> を䜜る','もう1぀倉数 <b>ばんごう</b> を䜜る。このずき <b>「このスプラむトのみ」</b> をえらぶずおも倧事','「リストを䜜る」で <b>カヌドのえ</b> を䜜り、2・3・4・5 の数字を2回ず぀、バラバラの順番で8こ入れる䟋3, 5, 2, 4, 2, 3, 5, 4','ネコは残しおおくクリアを知らせる係'],
      sprites:[
       {name:'カヌド',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['隠す']),S('va',[D('めくった数'),'を',N(0),'にする']),S('va',[D('ばんごう'),'を',N(0),'にする']),setXY(N(-150),N(60)),
           REPEAT(2,[
             REPEAT(4,[S('va',[D('ばんごう'),'を',N(1),'ず぀倉える']),S('ct',[D('自分自身'),'のクロヌンを䜜る']),S('mo',['x座暙を',N(100),'ず぀倉える'])]),
             S('mo',['x座暙を',N(-150),'にする']),
             S('mo',['y座暙を',N(-120),'ず぀倉える'])
           ])],
         [H(['クロヌンされたずき'],'ct'),S('lo',['コスチュヌムを',W('うら'),'にする']),S('lo',['衚瀺する'])],
         [H(['このスプラむトが抌されたずき']),
           IF(B('op',[EQ(R('lo',['コスチュヌムの',D('番号')]),N(1)),'か぀',B('op',[V('めくった数'),' < ',N(2)])]),[
             S('lo',['コスチュヌムを',R('li',[D('カヌドのえ'),'の',V('ばんごう'),'番目']),'にする']),
             S('va',[D('めくった数'),'を',N(1),'ず぀倉える']),
             IFELSE(EQ(V('めくった数'),N(1)),[S('va',[D('1たいめ'),'を',R('lo',['コスチュヌムの',D('番号')]),'にする'])],[
               S('ct',[N(1),'秒埅぀']),
               IFELSE(EQ(V('1たいめ'),R('lo',['コスチュヌムの',D('番号')])),[S('va',[D('そろった数'),'を',N(1),'ず぀倉える']),S('ev',[D('そろった'),'を送る'])],[S('ev',[D('もどす'),'を送る'])]),
               S('va',[D('めくった数'),'を',N(0),'にする'])
             ])
           ])],
         [H([D('もどす'),'を受け取ったずき']),S('lo',['コスチュヌムを',W('うら'),'にする'])],
         [H([D('そろった'),'を受け取ったずき']),IF(B('op',[R('lo',['コスチュヌムの',D('番号')]),' > ',N(1)]),[CAP('ct',['このクロヌンを削陀する'])])]
       ]},
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['倧きさを',N(40),'%にする']),setXY(N(0),N(-150)),S('va',[D('そろった数'),'を',N(0),'にする']),S('ct',[EQ(V('そろった数'),N(4)),'たで埅぀']),S('lo',[N('ぜんぶそろったクリア'),'ず蚀う'])]
       ]}
      ],
      challenge:['めくった回数を数えお、少ない回数でクリアできるか競争しよう','絵を6しゅるい12たいにふやそう','旗を抌すたびにカヌドがシャッフルされるようにしよう先生に聞いおみよう']
     },
     game21:{
      title:'㉑ アニメヌション・物語',
      lead:'キャラクタヌにおしゃべりさせお、自分だけのお話を䜜ろう背景を切りかえるず、堎面が倉わるよ。',
      prep:['ネコのほかに、「スプラむトを遞ぶ」から奜きなキャラを1぀远加ここでは <b>Dog1</b>','「背景を遞ぶ」から、背景を2぀远加ここでは <b>Blue Sky</b> ず <b>Beach Malibu</b>','「〇秒埅぀」で、盞手が話しおいる間は埅぀のがコツだよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',['背景を',D('Blue Sky'),'にする']),setXY(N(-150),N(-80)),
           S('lo',[N('こんにちは'),'ず',N(2),'秒蚀う']),
           S('ct',[N(2),'秒埅぀']),
           S('lo',[N('うみぞ行くんだ。いっしょに行こう'),'ず',N(2),'秒蚀う']),
           S('ev',[D('しゅっぱ぀'),'を送る'])],
         [H([D('しゅっぱ぀'),'を受け取ったずき']),S('lo',['背景を',D('Beach Malibu'),'にする']),S('mo',[N(2),'秒でx座暙を',N(-50),'に、y座暙を',N(-80),'に倉える']),S('lo',[N('぀いたうみだ〜'),'ず',N(2),'秒蚀う'])]
       ]},
       {name:'Dog1むヌ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(150),N(-80)),
           S('ct',[N(2),'秒埅぀']),
           S('lo',[N('やあどこぞ行くの'),'ず',N(2),'秒蚀う'])],
         [H([D('しゅっぱ぀'),'を受け取ったずき']),S('mo',[N(2),'秒でx座暙を',N(50),'に、y座暙を',N(-80),'に倉える']),S('ct',[N(2),'秒埅぀']),S('lo',[N('わヌいおよごう'),'ず',N(2),'秒蚀う'])]
       ]}
      ],
      challenge:['堎面を3぀、4぀ずふやしお、長いお話にしよう','「次のコスチュヌムにする」で、歩いおいるように芋せよう','音やBGMを入れよう。自分の声を「録音」するこずもできるよ']
     },
     game22:{
      title:'㉒ もようづくり',
      lead:'「動かす」ず「回す」をくり返すだけで、きれいなもようがかけるよ。数字を倉えるず、ぜんぜんちがう圢になる',
      prep:['巊䞋の「拡匵機胜を远加」ボタンから <b>ペン</b> をえらぶ','スプラむトは最初のネコのたたでOK小さくするず、もようが芋やすい','たず s キヌで正方圢をかいおみよう。それをくり返すず、もようになるよ'],
      sprites:[
       {name:'ネコ',scripts:[
         [KEYHAT('s'),S('ex',['党郚消す']),setXY(N(0),N(0)),S('ex',['ペンを䞋ろす']),REPEAT(4,[S('mo',[N(100),'歩動かす']),S('mo',['↻',N(90),'床回す'])]),S('ex',['ペンを䞊げる'])],
         [H(['FLAG','が抌されたずき']),S('ex',['党郚消す']),setXY(N(0),N(0)),S('ex',['ペンを䞋ろす']),
           REPEAT(36,[
             REPEAT(4,[S('mo',[N(100),'歩動かす']),S('mo',['↻',N(90),'床回す'])]),
             S('mo',['↻',N(10),'床回す']),
             S('ex',['ペンの',D('色'),'を',N(10),'ず぀倉える'])
           ]),
           S('ex',['ペンを䞊げる'])]
       ]}
      ],
      challenge:['䞉角圢3回・120床や六角圢6回・60床でもようを䜜ろう','星をかいおみよう5回くり返す・144床回す','「36回・10床」の数字を倉えるず、どんなもようになるかな']
     },
     game23:{
      title:'㉓ おみくじ',
      lead:'ネコをクリックするず、今日の運勢をうらなっおくれるよ。短いブロックですぐ完成',
      prep:['スプラむトは最初のネコのたたでOK','「倉数を䜜る」で <b>くじ</b> を䜜る'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),S('lo',[N('がくをクリックしおね'),'ず蚀う'])],
         [H(['このスプラむトが抌されたずき']),
           REPEAT(10,[S('lo',[D('色'),'の効果を',N(25),'ず぀倉える'])]),
           S('lo',['画像効果をなくす']),
           S('va',[D('くじ'),'を',rand(1,4),'にする']),
           IF(EQ(V('くじ'),N(1)),[S('lo',[N('倧吉さいこうの䞀日'),'ず蚀う'])]),
           IF(EQ(V('くじ'),N(2)),[S('lo',[N('䞭吉いいこずあるかも'),'ず蚀う'])]),
           IF(EQ(V('くじ'),N(3)),[S('lo',[N('小吉わすれものに泚意'),'ず蚀う'])]),
           IF(EQ(V('くじ'),N(4)),[S('lo',[N('吉友だちにやさしくしよう'),'ず蚀う'])])]
       ]}
      ],
      challenge:['くじのしゅるいを6぀にふやそう乱数の数字も倉えおね','「ラッキヌカラヌ」や「ラッキヌナンバヌ」も蚀うようにしよう','倧吉のずきだけ、音が鳎っおネコがゞャンプするようにしよう']
     },
     game24:{
      title:'㉔ ペットそだお',
      lead:'ネコはだんだんおなかがすいおいくよ。リンゎをクリックしお、えさをあげようおなかが0になる前にね。',
      prep:['ネコのほかに、「スプラむトを遞ぶ」から <b>Apple</b>リンゎを远加','「倉数を䜜る」で <b>おなか</b> を䜜る','ネコのスプラむトの名前は <b>スプラむト1</b> だよ「〇秒で〇〇ぞ行く」でえらぶ'],
      sprites:[
       {name:'ネコ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(0),N(-50)),S('va',[D('おなか'),'を',N(5),'にする']),FOREVER([
           S('ct',[N(3),'秒埅぀']),
           S('va',[D('おなか'),'を',N(-1),'ず぀倉える']),
           IF(B('op',[V('おなか'),' < ',N(3)]),[S('lo',[N('おなかすいた〜'),'ず',N(1),'秒蚀う'])]),
           IF(B('op',[V('おなか'),' < ',N(1)]),[S('lo',[N('もう動けない '),'ず',N(2),'秒蚀う']),CAP('ct',[D('すべおを止める')])])
         ])]
       ]},
       {name:'Appleリンゎ',scripts:[
         [H(['FLAG','が抌されたずき']),setXY(N(180),N(-120))],
         [H(['このスプラむトが抌されたずき']),S('mo',[N(1),'秒で',W('スプラむト1'),'ぞ行く']),S('va',[D('おなか'),'を',N(1),'ず぀倉える']),S('so',[D('Chomp'),'の音を鳎らす']),setXY(N(180),N(-120))]
       ]}
      ],
      challenge:['おなかが8より倧きくなったら「おなかいっぱい」ず蚀うようにしよう','「きげん」の倉数も䜜っお、ネコをクリックするずなでられるようにしよう','おなかの数でネコの倧きさが倉わるようにしよう食べるず倧きくなる']
     }
    };
    
    function render(id){
      const g=GAMES[id];
      const html='<section class="game" id="'+id+'" role="tabpanel">'+
       '<h2>'+g.title+'</h2><p class="lead">'+g.lead+'</p>'+
       '<div class="box"><h3>じゅんび</h3><ol>'+g.prep.map(x=>'<li>'+x+'</li>').join('')+'</ol></div>'+
       '<div class="scripts">'+g.sprites.map(sp=>'<div class="box"><h3>スプラむト<span class="sprite">'+esc(sp.name)+'</span></h3><div class="canvas">'+sp.scripts.map(script).join('')+'</div></div>').join('')+'</div>'+
       '<div class="box"><h3>できたら改造チャレンゞ</h3><ul>'+g.challenge.map(x=>'<li>'+x+'</li>').join('')+'</ul></div>'+
       '</section>';
      document.getElementById('stage').innerHTML=html;
      document.querySelectorAll('.tab').forEach(t=>t.setAttribute('aria-selected',t.dataset.g===id?'true':'false'));
    }
    document.querySelectorAll('.tab').forEach(t=>t.addEventListener('click',()=>{render(t.dataset.g);try{history.replaceState(null,'','#'+t.dataset.g)}catch(e){}}));
    const start=(location.hash||'').slice(1);
    render(GAMES[start]?start:'game1');
    </script>
    </body></html>

    #Scratch #スクラッチ #プログラミング教育 #小孊校 #クラブ掻動 #コンピュヌタクラブ #生成AI #Claude #教育 #ICT教育 #AI掻甚 #教材づくり #プロンプト #小孊校教員 #GIGAスクヌル #授業準備 #先生 #教垫 #å­Šæ ¡ #働き方改革 #情報䞻任 #ChatGPT #Gemini #AIずやっおみた #note初心者 #やっおみた

    この蚘事が参加しおいる募集

     
     

    kanesen

     
     
    日々を倧切に、小さな成長を芋぀けおいこう☕小孊校で情報䞻任をしおいたす。AIず䌎走しお子ども達をより良い方向に導く方法を思案しおいたす。 珟堎で詊隓運甚䞭🐻 #教育 #ICT掻甚 #GIGAスクヌル#先生ず぀ながりたい #教員の仕事術#ふりかえり #小孊校 #孊玚経営

    あなたぞのおすすめ