编辑代码



//函数1:初始化草地
func initGame(){
   group.removeA11()//用于清除数组
   for _ in 0..<rows {
     for _ in 0..<cols {
        group.append("0")
       }
     }
}


//函数2:显示草地区域的内容
func display(){
    for i in O..<rows {
        forj in 0..<cols{
            print(group[i*cols+j], separator:" ", terminator:"")
        }
        print()
    }
}


//函数3:在指定位置添加一个物体
 func setobject(row:Int,col:Int,objectID: String) t if row>=rows  col>=cols {
     if row>=rows || col>=cols {
return
     }
group[row*cols+col] = objectID
 }


 //效果:初始化并显示
initGame()
    setObiect(row: 1, col: 3, objectID: "<")
    setObject(row: 3, col: 1, objectID: "B")
    setObject(row: 6, col: 2, objectID: "B")
display()


//函数4:获知猴子所在位置和状态
func findMonkey()->(Int,Int,String) (
    for i in 0..<rows
        for jin 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")
}

//函数5:猴子前进1步
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()
    }
}


//函数6:猴子转向
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()
        }
    }
}



//最后调用程序
initGame()
setObject(row: 1, col: 3, objectID: "<")
setObject(row: 3, col: 1, objectID: "B")
setObject(row :6, col: 2, objectID: "B")
display()
step()
step()
turn(direction: "left")
step()
step()
display()