前ステージ同様、expert君、characterちゃんの二人を個別に操作していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
//2つのインスタンスを作成 let expert = Expert() let character = Character() //expert君への指示 expert.turnRight() for i in 1 ... 3 { expert.moveForward() } expert.turnLeft() expert.moveForward() expert.moveForward() expert.turnRight() expert.turnLockUp() //最初のスイッチを操作 expert.turnLeft() expert.moveForward() expert.moveForward() expert.turnLeft() for i in 1 ... 6 { expert.moveForward() } expert.turnLeft() expert.moveForward() expert.moveForward() expert.turnRight() expert.turnLockDown() //反対側のスイッチを操作 expert.turnLockDown() //characterちゃんへの指示 character.moveForward() character.moveForward() character.collectGem() character.moveForward() character.moveForward() character.toggleSwitch() |
同じ命令が繰り返しになっている部分は関数にまとめる余地があるかも知れませんよ?
多分これは現在の課題とは異なる課題の解ではないかと思われます。boolやnumberOfTimesがわからないので困っています。新しいバージョンで教えていただけませんか?
念のため最新のSwift4.2版で試してみましたが問題なくクリアできるようです。このページは「初期化」の4番目の課題「力を合わせて」のものですがお間違いないでしょうか?
この問題にはboolもnumberOfTimesも出てこないのでなにかしら行き違いがあるように思うのですがわかりませんでした。もう少し情報をいただければなにかお答えできるかも知れません。
ありがとうございました。おっしゃる通りでした。
落ち着いてやってみたら解答の通りでした。
混乱して勘違いしていました。申し訳ありません。
ビギナーなので、四苦八苦しながら学んでいます。
こちらのサイトがなければ、お手上げです。
今後ともよろしくお願い致します。
コードを書く上で、独学だとどうしても自力では解けないところがあるので助かっています。
また、なぜこのコードになるのかという理由も書いてあるので理解しやすいです。
エキスパートの移動は長方形なので
4分割してそれを1パターンとして進めてもいいですね
func expert_直角を移動() {
for i in 1 … 5 {
expert.moveForward()
if expert.isBlocked {
expert.turnRight() // あるいはleft
}
}
}