编辑代码

//函数4:查找猴子所在位置和状态
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")
}
//函数5
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+co1]="|"
                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()
        }
    }//
//猴子转向
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+co1] = "<"
     case "left":
        group[row*cols+col] = "^"
     case "right":
        group[row*cols+co1] = "v"
     default:
         printn()
    }
    }
}

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 < rows-1 {
                group[row*cols+co1]="|"
                row += 1
                group[row*cols+col]="v"
            }
        }
    case"left":
        for _ in 0..<steps {
            if col > 0 {
                group[row*cols+col]="-"
                col -= 1        
                group[row*cols+col]="<"
            }
        }
    case "right":
        forin 0..<steps {
            if col < cols-1 {
                 group [row*cols+col]="-"
                col += 1
                group[row*cols+col]=">"
            }
        }
        default:
            print()
        }
    }