初期化 3. 違う型のインスタンスを使う

いよいよステージ上に複数のキャラクター(characterとexpert)を登場させて使い分ける必要が出てきます。
expert君はExpert()、characterちゃんはCharacter()とそれぞれ違う型から生まれたインスタンスなので、それぞれできることが違います。鍵を操作して移動式の床板を浮かべたり沈めたりできるのはExpert()型の能力を与えられたexpert君のみです。
expert君のcharacterちゃんのどちらに対する指示なのかをドット記法ではっきりさせながらコードを書いていきます。
関数を作る必要もないようなシンプルなステージなので、二人への呼び分けをじっくり練習しましょう。

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

“初期化 3. 違う型のインスタンスを使う” への1件の返信

  1. 「expert.moveForward()」が1個多いですよ!

    ↓ なお、自分は無駄に関数で書きました。

    let expert = Expert()
    let character = Character()

    func goANDstop() { // characterの移動&処理の関数
    while !character.isOnGem && !character.isBlocked { // 「宝石上ではない かつ 前行き止まりではない」限り前進
    character.moveForward()
    }
    if character.isOnGem { // 宝石上なら取る
    character.collectGem()
    }
    }

    //// —ここからメイン— ////
    // character //
    goANDstop() // 前進、宝石上まで来たら移動ループ外れて取る

    // expert //
    expert.moveForward()
    expert.turnLockUp()

    // character //
    character.moveForward()
    character.turnRight()
    goANDstop()

    // expert //
    expert.turnLockDown()
    expert.turnLockDown()
    goANDstop() // 宝石まで行って止まる

コメントを残す

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