ICode国际青少年编程竞赛- Python-6级训练场-多重递归
1、
def move(a, b):if a > 12:returnDev.step(a)Dev.turnRight()if b < 4:move(a, b+1)else:move(a+2, 1)
move(2, 1)
2、
def move(a, b):if a < 2:returnif b == 1: Spaceship.step(2)Dev.step(a)Dev.turnRight()Dev.step(a)if b < 4:move(a, b+1)else:move(a-2, 1)
move(6, 1)
3、
def move(a, b):if b == 0:returnDev.step(a)if a > 0:Dev.turnRight()elif a != 0:Dev.turnLeft()Dev.step(a)if a > 1:Dev.turnLeft()elif a != 0 and a != 1: Dev.turnRight()if a > b: move(a-1, b)else:move(-a-1, b+1)
move(4, -4)
4、
def move(a, b):if b < 3: returnif a > 0:if a == b: Dev.step(a)Dev.step(a)if a > 1: Dev.turnRight()move(a-1, b)elif a < 1 and a > -b:Dev.step(a-1)Dev.turnLeft()move(a-1, b)else:Dev.step(a-1)Dev.turnRight()a = b - 1b = amove(a, b)
move(5, 5)
5、
def move(a, b):if b > 4:returnif a == 5: Dev.step(b)if a >= 2:Dev.step(a)if a > 2: Dev.turnRight()if a == 2: a = -1move(a-1, b)elif a >= -5:Dev.step(a)if a != -5: Dev.turnLeft()move(a-1, b)else:Dev.step(-b)Dev.turnLeft()move(5, b+1)
move(5, 1)
6、
def move(a):Dev.step(a)Dev.turnLeft()Dev.step(a-1)Dev.step(1-a)Dev.turnRight()Dev.step(-a)Spaceship.step()Spaceship.turnLeft()Spaceship.step()Spaceship.turnRight()Spaceship.step()if a < 5: move(a+1)
Dev.step()
move(2)
7、
def move(a, b):if b == 0: Dev.step(5)Dev.step(a)Dev.turnRight()if b < 2: move(a, b+1)if b == 2:Dev.step(a-5)Dev.turnRight()if a < 4: move(a+1, 0)
move(2, 0)
8、
def move(a, b):if a == 0:Spaceship.step(4)Spaceship.turnRight()Dev.step()Dev.step(2)Dev.turnRight()if a < 3: move(a+1, b)if a == 3:Dev.step(-1)Spaceship.step(4)Spaceship.turnLeft()if b < 2: move(0, b+1)Dev.turnLeft()
move(0, 0)
9、
def move(a, b):if b == 0:Spaceship.step(5)Spaceship.turnRight()Spaceship.step()Dev.turnRight()Dev.step()Dev.step(3)Dev.turnRight()if b < 3: move(a, b+1)if b == 3:Dev.step(-1)Spaceship.turnRight()Spaceship.turnRight()Spaceship.step()Spaceship.turnLeft()Spaceship.step(5)Spaceship.turnLeft()if a < 3: move(a+1, 0)
move(0, 0)
10、
def move(a, b, c):if (b-a) == 2: Dev.step(a)Dev.step(b)if c == 0: Dev.turnRight()if c == 1 and b < a + 1: Dev.turnLeft()if c == 0 and b > 1: move(a, b-1, 0)if c == 1 and b < a + 1: move(a, b+1, 1)if c == 0 and b == 1:Dev.turnRight()move(a, b, 1)if c == 1 and b == a + 1 and a > 0:move(a-1, b, 0)
move(4, 6, 0)
11、
def move(a, b, c):if a == 0: Dev.step(2)Dev.step(b)if b == 2: Dev.turnLeft()if b == 4: Dev.turnRight()if b < 4 and a < 2: move(0, b+2, 0)if b < 4 and a == 2: move(0, b+2, 1)if a < 2: move(a+1, b, c)if c == 0 and a == 2 and b == 4:Dev.step(b)Dev.turnLeft()Dev.step(2)if c == 1 and a == 2 and b == 4: Dev.step(b-1)
move(0, 2, 0)
12、
def move(a, b, c):if a == 0: Dev.step(-3)Dev.step(-b)Dev.turnLeft()if b > 2 and a < 2: move(0, b-2, 0)if b > 2 and a == 2: move(0, b-2, 1)if a < 2: move(a+1, b, c)if a == 2 and b == 2:Dev.step(-a)if c == 0:Dev.turnRight()Dev.step(-3)
move(0, 4, 0)
13、
def move(a, b):if a == 0: Dev.step()Dev.step(2)Dev.turnRight()if a < 3: move(a+1, b)if a == 3:Dev.step(-1)Dev.turnLeft()Spaceship.step(b)if b < 11: Spaceship.turnLeft()move(0, b+3)
move(0, 1)
14、
def move(a, b, c):if a == 0: Spaceship.step(b)Dev.step(c)Dev.turnLeft()Dev.step(c)if a < 3: move(a+1, b, c)if a == 3 and c > 1:move(0, b+1, c-2)
move(0, 1, 5)
15、
def move(a, b):if a == b:Spaceship.step(b)Spaceship.turnRight()Spaceship.step(b)Spaceship.turnLeft()Dev.step(a)if a > 1: Dev.turnLeft()move(a-1, b)if a < 0 and a > -b: Dev.turnRight()if a == 1: move(-1, b)if a < 0 and a > -b: move(a-1, b)if a == -b:move(b-1, b-1)
move(4, 4)
16、
def move(a, b):if a == 1:Spaceship.step(2)Spaceship.turnRight()Spaceship.step(2)Dev.step(a)Dev.step(-a)if a < 3: move(a+1, b)if a == 3 and b < 3:Spaceship.turnRight()Spaceship.turnRight()Spaceship.step(6)Spaceship.turnRight()Spaceship.step(3)Spaceship.turnLeft()Dev.turnLeft()if b < 4: move(1, b+1)
move(1, 0)
17、
def move(a, b):Spaceship.step(b)Dev.step(a)Dev.step(-a)if a < 3: move(a+1, b)if a == 3:Spaceship.turnLeft()Dev.turnLeft()if b < 4: move(1, b+1)
move(1, 2)
18、
def move(a, b):Dev.step(a)Dev.step(-a)Spaceship.step(2)if a < 3: move(a+1, b)if a == 3 and b < 2:Spaceship.turnRight()Dev.turnRight()move(1, b+1)
move(1, 0)
19、
def move(a, b):if a == 0:Spaceship.turnRight()if b < 7 and b > 3: Dev.turnRight()Spaceship.step(b)if b > 2 and b < 7:if a == 0: Dev.step(-1)Dev.step(-2)Dev.turnRight()if a < 3: move(a+1, b)if a == 3:Dev.step(1)if b < 7: move(0, b+1)elif b < 7: move(0, b+1)
move(0, 2)
20、
def move(a, b, c):if c == 0:Spaceship.turnLeft()Spaceship.step(b)Dev.step(3)Dev.step(a)Dev.turnRight()if c < 3: move(a, b, c+1)if c == 3:Dev.step(-3)Dev.turnLeft()if b > 2: move(a+1, b-2, 0)
move(2, 8, 0)