仕事の忙しさにかまけて、自宅学習を怠っていました。
これでは、結果はついてきません。
久しぶりに、Playgroundsでswiftプログラミングの練習を実施。
以下、表題クリア時のソースです。
test.swift
var daiya = 3
var ii = 0
// 前進して、ボタンを押す処理
func zenshin(){
// 正面ブロックでなければ、進む
while !expert.isBlocked {
expert.moveForward()
}
expert.turnLockUp()// 鍵を開ける
expert.turnRight()// 右を向く
}
func an(){
// 定義ダイヤの数と取得ダイヤの数がイコールでなければ実行
while daiya != ii {
//全方向行き止まりではないなら、実行
if !expert.isBlocked && !expert.isBlockedLeft && !expert.isBlockedRight {
// ジェムの上に来たら、、、ジェムを取得
if expert.isOnGem {
expert.collectGem()
ii = ii + 1}
expert.turnLeft()
expert.moveForward()
}
//左が行き止まり、かつ正面が行き止まりでない
if expert.isBlockedLeft && !expert.isBlocked {
// ジェムの上に来たら、、、ジェムを取得
if expert.isOnGem {
expert.collectGem()
ii = ii + 1}
expert.moveForward()
//右が行き止まり、かつ正面が行き止まりでない
} else if expert.isBlockedRight && !expert.isBlocked {
// ジェムの上に来たら、、、ジェムを取得
if expert.isOnGem {
expert.collectGem()
ii = ii + 1}
expert.turnLeft()
expert.moveForward()
//右が行き止まり、かつ正面も行き止まり
} else if expert.isBlocked && expert.isBlockedRight {
// ジェムの上に来たら、、、ジェムを取得
if expert.isOnGem {
expert.collectGem()
ii = ii + 1}
expert.turnLeft()
expert.moveForward()
//正面が行き止まりならば
} else if expert.isBlocked {
// ジェムの上に来たら、、、ジェムを取得
if expert.isOnGem {
expert.collectGem()
ii = ii + 1}
expert.turnRight()
expert.moveForward()
} else {
}
}
}
/*ここからが実行部分*/
zenshin()
an()