tiger吴 发表于 2020-6-8 17:44:59

类和对象课后作业


import random

class Turtle:
    def creat(self):
      return
    def moving(self,pos_x,pos_y):
      self.pos_x=pos_x
      self.pos_y=pos_y
      step_x=random.randint(-2,2)
      step_y=random.randint(-2,2)
      new_pos_x=self.pos_x+step_x
      if new_pos_x>10:
            new_pos_x-=10
      if new_pos_x<0:
            new_pos_x*=-1
      new_pos_y=self.pos_y+step_y
      if new_pos_y>10:
            new_pos_y-=10
      if new_pos_y<0:
            new_pos_y*=-1
      return

class Fish:
    def __init__(self):
      self.step=random.randint(-1,1)
      self.pos_x=random.randint(0,11)
      self.pos_y=random.randint(0,11)
    def creat(self):
      return
    def moving(self,pos_x,pos_y):
      self.pos_x=pos_x
      self.pos_y=pos_y
      step_x=random.randint(-1,1)
      step_y=random.randint(-1,1)
      new_pos_x=self.pos_x+step_x
      if new_pos_x>10:
            new_pos_x-=10
      if new_pos_x<0:
            new_pos_x*=-1
      new_pos_y=self.pos_y+step_y
      if new_pos_y>10:
            new_pos_y-=10
      if new_pos_y<0:
            new_pos_y*=-1

      return

t=Turtle()
tt=t.creat()
f=Fish()
mylist=[]
for i in range(1,11):
    ff=f.creat()
    mylist.append(ff)
count=101
while count>0:
    if mylist!=[]:
      if tt in mylist:
            print('恭喜你吃了一条鱼,体力加20!')
            mylist.remove(tt)
            count+=20
      else:
            count-=1
            print(tt,'\n',mylist)
    else:
      print('恭喜您,victory')
      break
    t=Turtle()
    tt=t.moving(tt,tt)
   
    for i in range(len(mylist)-1):      
      a=Fish()
      b=a.moving(mylist,mylist)
      mylist.remove(mylist)
      mylist.insert(i,b)
else:
    print('体力为0,游戏结束')
达不到要求啊,咋改改

xiaosi4081 发表于 2020-6-8 17:48:17

你想要的效果?

Twilight6 发表于 2020-6-8 18:36:43

这几个步子数错了,因为这样的话会选到 0 ,你应该弄一个列表比如 turtle_move=[-2,-1,1,2] 然后用 choice 来随机选择
step_x=random.randint(-2,2)
step_y=random.randint(-2,2)
self.step=random.randint(-1,1)

后面的没怎么看了,头晕哈哈

jia159753 发表于 2020-6-8 18:59:57

看一大串程序,真的晕,哈哈哈

tiger吴 发表于 2020-6-9 04:05:08

Twilight6 发表于 2020-6-8 18:36
这几个步子数错了,因为这样的话会选到 0 ,你应该弄一个列表比如 turtle_move=[-2,-1,1,2] 然后用 choice...

我要的选择里也有不动也就是0,我想写自己要的效果

tiger吴 发表于 2020-6-9 04:07:01

Twilight6 发表于 2020-6-8 18:36
这几个步子数错了,因为这样的话会选到 0 ,你应该弄一个列表比如 turtle_move=[-2,-1,1,2] 然后用 choice...

确实挺长的,我还很意外才改了2次代码就没报错了,就是跑出来的结果有点迷

tiger吴 发表于 2020-6-9 04:08:56

Twilight6 发表于 2020-6-8 18:36
这几个步子数错了,因为这样的话会选到 0 ,你应该弄一个列表比如 turtle_move=[-2,-1,1,2] 然后用 choice...

朋友,最佳在向你招手,干了它

轩慕云 发表于 2020-6-9 07:10:38

加油{:10_245:}
页: [1]
查看完整版本: 类和对象课后作业