sunny6232 发表于 2020-4-5 00:01:50

如何把这个代码压缩到只要4行就可以解决问题。

#如何把这个代码压缩到只要4行就可以执行一样的效果。只要用python就行。

Flyer.step(2)
Flyer.step(1)
Flyer.step(2)
Flyer.step(3)
Spaceship.step(1)
Spaceship.turnRight()
Spaceship.step(3)
Spaceship.turnRight()
Spaceship.turnRight()
Spaceship.step(3)
Spaceship.turnRight()
Spaceship.step(4)
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.step(4)
Spaceship.turnRight()
Spaceship.step(3)
Spaceship.turnRight()
Spaceship.turnRight()
Spaceship.step(3)
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.turnRight()
Spaceship.step(2)
Spaceship.turnRight()
Spaceship.step(4)
Spaceship.turnRight()
Spaceship.step(4)

xiangjianshinan 发表于 2020-4-5 00:20:08

你确定可以???

拭目以待。感觉无能为力!

用循环一句,加变量需要两句(赋初值一句,根据条件变换一句),再加上另外的。
楼主,建议你在每句代码后面加分号,这样看起来 是一句就能解决啦。

txxcat 发表于 2020-4-5 02:35:12

抛砖引玉,前4行的实现没想出方法,我不知道python里能实现这样的语句吗:Flyer.step(2),看看有没有高手能告知一二。后面的想了个办法,用一个字符串作为数据索引,下面代码模拟一个环境,只运算前10行,给大家参考(本来可以遍历字符串本身,代码会简单点,后来考虑前4行的实现,就改成了数字索引):
class SpaceShip:
    def step(self,s):
      print('step ',s)

    def turnRight(self):
      print('turnright')
      
Spaceship=SpaceShip()


s='1R3RR3R4R2'
for i in range(len(s)):
    Spaceship.step(int(s)) if s.isdigit() else Spaceship.turnRight()

sunny6232 发表于 2020-4-5 11:01:03

这个代码就是。一个小程序里来控制里面游戏人物行动的。
页: [1]
查看完整版本: 如何把这个代码压缩到只要4行就可以解决问题。