编辑代码

import UIKit
class ViewController: UIViewController {
    let rows = 9
    let cols = 9
    var group : Array<String> = []
    override func viewDidLoad() {
        super.viewDidLoad()
        initGame()
        setObject(row: 4, col: 3, objectID: "v")
        setObject(row: 3, col: 1, objectID: "B")
        setObject(row: 6, col: 2, objectID: "B")
        display()
    }
    func initGame() {
        group.removeAll()
        for _ in 0..<rows {
            for _ in 0..<cols {
                group.append("0")
            }
        }
    }
    func display() {
    for i in 0..<rows {
            for j in 0..<cols {
                print(group[i*cols+j], separator: " ", terminator: " ")
            }
            print()
        }
    }
    func setObject(row:Int,col:Int,objectID:String) {
        if i in 0..<rows {
            if ij in 0..<cols {
                let value = group[i*cols+j]
                switch value {
                    case "^":
                    return (i,j,"up")
                    case "v":
                    return (i,j,"down")
                    case "<":
                    return (i,j,"left")
                    case ">":
                    return (i,j,"right")
                    default:
                    print()
                }
            }
        }
        return(0,0,"none")
    }
    func turn(direction:String) {
        let (row,col,status) = findMonkey()
        if direction == "left" {
            switch status {
                case "up":
                group[row*cols+col] = "<"
                case "down":
                group[row*cols+col] = ">"
                case "left":
                group[row*cols+col] = "v"
                case "right":
                group[row*cols+col] = "^"
                default:
                print()
            }
        }
        else if direction=="right" {
            print(row,col,status)
            switch status {
                case "up":
                group[row*cols+col] = ">"
                case "down":
                group[row*cols+col] = "<"
                case "left":
                group[row*cols+col] = "^"
                case "right":
                group[row*cols+col] = "v"
                default:
                print()
            }
        }
        func step(steps:Int) {
            var (row,col,status) = findMonkey()
            switch status {
                case "up":
                for _ in 0..<steps {
                    if row > 0 {
                        group[row*cols+col]="|"
                        row -= 1
                        group[row*cols+col]="^"
                    }
                }
                case "down":
                for _ in 0..<steps {
                    if row > 0 {
                        group[row*cols+col]="|"
                        row += 1
                        group[row*cols+col]="v"
                    }
                }
                case "left":
                for _ in 0..<steps {
                    if row > 0 {
                        group[row*cols+col]="|"
                        row -= 1
                        group[row*cols+col]="<"
                    }
                }
                case "right":
                for _ in 0..<steps {
                    if row > 0 {
                        group[row*cols+col]="|"
                        row += 1
                        group[row*cols+col]=">"
                    }
                }
                default:
                print()
            }
        }
    }