|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
课后题中:游戏编程:按以下要求定义一个乌龟类和鱼类并尝试编写游戏。(初学者不一定可以完整实现,但请务必先自己动手,你会从中学习到很多知识的^_^)qOUdQsH
O4wY6:=cn7AVNs_5kd?,o-
假设游戏场景为范围(x, y)为0<=x<=10,0<=y<=10
它们的移动方向均随机
乌龟的最大移动能力是2(Ta可以随机选择1还是2移动),鱼儿的最大移动能力是1
def move(self):
# 随机计算方向并移动到新的位置(x, y)
new_x = self.x + r.choice([1, 2, -1, -2])
new_y = self.y + r.choice([1, 2, -1, -2])
这是乌龟类中移动的方法的一部分,是不是每次移动,在x,y上都会发生移动
1、乌龟的初始坐标是随机的,每次移动是在随机的choice上作加减。
2、假如你现在有个列表【1,2,3,4,5】5个数,你用for循环,循环一次减一个数。
for循环到第三次的时候,就只有两个数了,还怎么继续循环?
remove的原理是remove一个元素之后下一个元素自动补位,所以你五次循环只能循环三次。
而用切片复制的意义就在这。你可以for循环列表的复制体,然后去掉原始列表里面数据。
这样切片复制没动,而原始列表去除数据,for循环也可以继续下去。
你可以把下面代码拷贝进你IDLE试一下:
- list1 = [1,2,3,4,5]
- list2 = [6,7,8,9,10]
- for i in list1[:]:
- list1.remove(i)
- print("五次循环循环五次")
- for i in list2:
- list2.remove(i)
- print("五次循环只循环三次")
复制代码
|
|