编辑代码

*1
let rows = 9
let cols = 5
var group : Array<String> = []
*2
func initGame(){
    group.removeAll()
    for _ in 0..<rows{
        for _ in 0..<cols {
            group.append{"0"}
        }
    }
}
*3
func display(){
    for i in 0..<rows {
        for j in 0..<cols {
            print(group[i*clos+j], separator:"", terminator:"")
        }
        print()
    }
}
*4
func setObject(row:Int,col:Int,objectID:String) {
    if row>=rows || col>=cols {
        return
    }
    group[row*cols+col] = objectID
}
*5
initGame()
setObject(row: 1, col: 3, objectID:"<")
setObject(row: 3, col: 1, objectID:"B")
setObject(row: 6, col: 2, objectID:"B")
display()
*6
func findMonkey()->(Int,Int,String) {
    for i in 0..<rows {
        for j 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")
}
*7
func step() {
    var (row,col,status) = findMonkey()
    switch status {
    case "up":
        if row > 0 {
            group[row*cols+col]="|"
            row -= 1
            group[row*cols+col]="^"
        }
        case "down":
        if row < rows-1 {
            group[row*cols+col]="|"
            row += 1
            group[row*cols+col]="v"
        }
    case "left":
        if col > 0 {
            group[row*cols+col]="-"
            col -= 1
            group[row*cols+col]="<"
        }
        case "right":
            if col < cols-1 {
                group{row*cols+col}="-"
                col += 1
                group{row*cols+col}">"
            }
            default:
                print()
    }
}
*8
func tion(direction:String){
    let (row,col,status) = findMonkey()
    if direction == "left" {
        switch statuns {
            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,statuns)
        switch statuns {
            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()
        }
    }
}