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")
}
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":
for — in 0..<steps {
if col < cols-1 {
group [row*cols+col]="-"
col += 1
group[row*cols+col]=">"
}
}
default:
print()
}
}