22-3 オブジェを作ろう!「3色の板①」

俯瞰図

解説動画

解答画像

解答コード

player.onChat("22-3", function () {
    let length = 0;
    for (let i = 0; i < 5; i++) {
        let width = 0;
        for (let j = 0; j < 5; j++) {
            if (width == 1 && length == 2) {
                agent.transfer(1, 19, 1);
            } else if (width == 4 && length == 3) {
                agent.transfer(1, 27, 1);
            } else {
                agent.transfer(1, 10, 1);
            }
            agent.place(FORWARD);
            agent.move(RIGHT, 1);
            width += 1;
        }
        agent.move(LEFT, 5);
        agent.move(BACK, 1);
        length += 1;
    }
})

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



教え方のポイント

  • 難しい場合、まずは色なしで作るところから
  • 条件を良く整理させる(〇本目と〇本目なら〇色に、〇本目と〇本目なら〇色にしたいか)
  • 中の繰り返しが棒を作る繰り返しであることをしっかり確認した上で、棒が一本できるとまた0から数えた方が楽である

よくある間違い

  • 変数を作る(初期値設定)プログラムがない
  • 変数を変えるプログラムがない
  • 変数を変えるタイミングがおかしい
  • 変数自体がプログラムに入っていない
  • 変数を作るプログラムと変数を変えるプログラムを見間違えている
  • 2個目の形を作るときに次の作る位置まで戻ってきていない
  • (例:上に向かって棒を作ったのに、次の繰り返しの前に下に戻ってくるプログラムがない)
  • 2個目の形を作り、次の場所に移動するときに1個目の形にぶつかってしまっている。
  • (変数を何種類か作っちゃっている場合)変数を作るプログラム、変数を変えるプログラム、変数自身の名前があっていない。別の変数になっている。
  • 条件の「変数=〇」の丸の部分が間違っている
  • 転送元のスロット番号が間違っている
  • 転送先のスロット番号が間違っている
  • エージェントがブロックを持っていない
  • 一度失敗したときにエージェントの一番左上のスロットにブロックが残ってしまっている
  • 「または」の部分が「かつ」などになっている
  • 「または」の両サイドにうまく条件が入っていない
  • 変数の数え方が間違ってる(0から数えていない)/li>