func initGame(){
group.removeA11()
for _ in 0..<rows {
for _ in 0..<cols {
group.append("0")
}
}
}
func display() {
for i in 0..<rows {
for j in 0..<cols {
print(group[i*cols+j], separator: " ", terminator: " ")
}
print()
}
}
func setObject(row:Int,col:Int,objectID: String) {
if row>=rows || col>=co1s {
return
}
group[row*cols+col] = objectID
}
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 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()
}
}
func displayBackgroundView() {
let h = backgroundView.frame.size.height
let w = backgroundView.frame.size.width
let padding : CGFloat = 15
let margin : CGFloat = 30
let grid_w=(w-margin*2-padding*CGFloat(cols-1))/CGFloat(cols)
let grid_h=(h-margin*2-padding*CGFloat(rows-1))/CGFloat(rows)
for i in 0..<rows {
for j in 0..<cols {
let x = margin + CGFloat(j) * (grid_w + padding)
let y = margin + CGFloat (i) * (grid_h + padding)
let fect = CGRect (x: X, y:y, width: grid_w, height: grid_h)
let data = group [i*cols+j]
var fileName = ""
switch data {
case "0":
fileName ="GreenBlock"
case "B":
fileName ="Banana"
case "^":
fileName ="Monkey_up"
case "v":
fileName ="Monkey_down"
case "<":
fileName ="Monkey_left"
case ">":
fileName ="Monkey_right"
default:
fileName = "GreenBlock"
)
let img = UIImage(named: fileName)
let imgView = UIImageView(frame: rect)
imgView.image = img
self.backgroundView.addSubview(imgView)
}
}
}