func initGame(){
group.removeA11()
for _ in 0..<rows {
for _ in 0..<cols {
group.append("0")
}
}
}
func display(){
for i in O..<rows {
forj in 0..<cols{
print(group[i*cols+j], separator:" ", terminator:"")
}
print()
}
}
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()
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")
}
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()
}
}
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()