8-4 オブジェを作ろう(横の長さが違う板②)

完成形

解説動画

解答画像

変数が変化しているか確認する方法



解答コード

player.onChat("8-4A", function () {
    let num = 5
    for (let index = 0; index < 3; index++) {
        for (let index = 0; index < 3; index++) {
            for (let index = 0; index < num; index++) {
                agent.place(FORWARD)
                agent.move(RIGHT, 1)
            }
            agent.move(LEFT, num)
            agent.move(UP, 1)
        }
        agent.move(DOWN, 3)
        agent.move(BACK, 1)
        num += -2
    }
})

player.onChat("8-4B", function () {
    let num = 5
    for (let index = 0; index < 3; index++) {
        for (let index = 0; index < num; index++) {
            for (let index = 0; index < 3; index++) {
                agent.place(FORWARD)
                agent.move(UP, 1)
            }
            agent.move(DOWN, 3)
            agent.move(RIGHT, 1)
        }
        agent.move(LEFT, num)
        agent.move(BACK, 1)
        num += -2
    }
})

教え方のポイント

変数に慣れないうちは、

  1. まずは変数も繰り返しもなしで作ってもらう
  2. その後、似た形の数字違いを探させる
  3. そこに変数というどんな数字にも慣れるやつを入れてみる(1にも2にも3にもなれるんだから入れてもいい)
  4. 一緒の形になった!
  5. 繰り返しが使える
  6. ただし変数は勝手にいろんな数字にならない
  7. じゃあ変数を変えるお願いも入れよう

というステージ1で教えてる変数の使い方を毎回順序だててさせてみる

・エージェントのアイテム欄に注意! ブロックがなくなっていないか、減っていないかをよく確認する。

よくある間違い

  • 変数を作る(初期値設定)プログラムがない
  • 変数を変えるプログラムがない
  • 変数を変えるタイミングがおかしい
  • 変数自体がプログラムに入っていない
  • 変数を作るプログラムと変数を変えるプログラムを見間違えている
  • 2個目の形を作るときに次の作る位置まで戻ってきていない
  • (例:上に向かって棒を作ったのに、次の繰り返しの前に下に戻ってくるプログラムがない)
  • 2個目の形を作るときに次の作る位置まで戻ってくるプログラムに変数が入っていない
  • (例:上に向かって変数の数分の棒を作ったのに、下に戻ってくる数が変数ではない)
  • 2個目の形を作り、次の場所に移動するときに1個目の形にぶつかってしまっている。
  • (変数を何種類か作っちゃっている場合)変数を作るプログラム、変数を変えるプログラム、変数自身の名前があっていない。別の変数になっている。
  • (例:変数を作るプログラムでは「ながさ」という変数名なのに、変数を変えるプログラムの方は「たて」という変数名で作っている)
  • エージェントがブロックを持っていない