アルゴリズム 5.右に行くか、左に行くか

コードの最後に1つだけ開スイッチがあるので、そこに辿り着くことをゴールとしてそれまで(!isOnOpenSwitch)whileで繰り返すのを一番外側のループとします。

次に、行き止まりになったら適切な向きに方向を変えるブロックと、宝石やスイッチがあったら処理するブロックを分離するとスッキリするでしょう。

方向転換はステージをよく観察すると、行き止まりには4パターンあることがわかります。それぞれの条件で左右どちらに曲がればいいかは一定のルールが決まるので、それをif〜else if〜else if〜else ifで書いていきます。OR(||)を使って右に曲がる時と左に曲がる時の2パターンにまとめても良いでしょう。

各条件はelseでつなげるべきかは考えてみましょう。

改善希望!役に立った! (+4 rating, 4 votes)
読み込み中...

“アルゴリズム 5.右に行くか、左に行くか” への2件の返信

  1. このステージの方向判断は2つのパターンだけです、こうするとより書きやすいと思います

    func naviGate(){
    if isBlocked && isBlockedLeft{
    turnRight()
    } else if isBlocked {
    turnLeft()
    }
    }
    while !isOnOpenSwitch{
    naviGate()
    if isOnGem{
    collectGem()
    } else if isOnClosedSwitch{
    toggleSwitch()
    }
    moveForward()
    }

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です