鱼C论坛

 找回密码
 立即注册
查看: 1114|回复: 2

零基础37讲的游戏 为什么体力不会-1?

[复制链接]
发表于 2018-1-19 23:15:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import random

  2. x = 10
  3. y = 10
  4. tl = 100                          #乌龟的体力
  5. y_wz = []                         #鱼的位置
  6. w_wz = []                         #乌龟的位置

  7. class Yu:
  8.     x = x
  9.     y = y
  10.     y_wz = y_wz
  11.         
  12.     def csy(self):
  13.         self.s = 10
  14.         while self.s:
  15.             y_x = random.randint(0,self.x)
  16.             y_y = random.randint(0,self.y)
  17.             self.y_wz.append([y_x,y_y])
  18.             self.s -= 1

  19.     def ydy(self):
  20.         for i in range(len(self.y_wz)):
  21.             y_zh = random.randint(0,1)
  22.             if y_zh == 0:
  23.                 if self.y_wz[i][0] == 0:
  24.                     y_fx = 1
  25.                 elif self.y_wz[i][0] == self.x:
  26.                     y_fx = -1
  27.                 else:
  28.                     y_fx = random.randint(0,1)
  29.                     if y_fx == 0:
  30.                         y_fx = -1
  31.             elif self.y_wz[i][1] == 0:
  32.                 y_fx = 1
  33.             elif self.y_wz[i][1] == self.y:
  34.                 y_fx = -1
  35.             else:
  36.                 y_fx = random.randint(0,1)
  37.                 if y_fx == 0:
  38.                     y_fx = -1

  39.             self.y_wz[i][y_zh] += y_fx

  40. class Wg:
  41.     x = x
  42.     y = y
  43.     tl = tl
  44.     w_wz = w_wz

  45.     def csg(self):
  46.         wg_x = random.randint(0,10)
  47.         wg_y = random.randint(0,10)     #乌龟的初始位置
  48.         self.w_wz.append(wg_x)
  49.         self.w_wz.append(wg_y)
  50.             
  51.     def ydg(self):
  52.         wg_zh = random.randint(0,1)
  53.         wg_bs = random.randint(1,2)
  54.         wg_fx = random.randint(0,1)
  55.         if wg_zh == 0:
  56.             if wg_fx == 0:
  57.                 self.w_wz[0] -= wg_bs
  58.                 if self.w_wz[0] < 0:
  59.                     self.w_wz[0] = 0 - self.w_wz[0]
  60.             else:
  61.                 self.w_wz[0] += wg_bs
  62.                 if self.w_wz[0] > self.x:
  63.                     self.w_wz[0] -= self.w_wz[0] - self.x
  64.         else:
  65.             if wg_fx == 0:
  66.                 self.w_wz[1] -= wg_bs
  67.                 if self.w_wz[1] < 0:
  68.                     self.w_wz[1] = 0 - self.w_wz[1]
  69.             else:
  70.                 self.w_wz[1] += wg_bs
  71.                 if self.w_wz[1] > self.y:
  72.                     self.w_wz[1] -= self.w_wz[1] - self.y
  73.         self.tl -= 1

  74. yy = Yu()
  75. gg = Wg()
  76. print('游戏开始!')
  77. yy.csy()
  78. gg.csg()

  79. while tl or len(y_wz):
  80.     ml = input('是否进行下一步(Y/N):')
  81.     if ml == 'Y':
  82.         yy.ydy()
  83.         gg.ydg()
  84.         while w_wz in y_wz:
  85.             y_wz.remove(w_wz)
  86.             tl += 20
  87.         print(y_wz)
  88.         print(w_wz)
  89.         print(tl)
  90.         

  91.    






  92.         
复制代码





如题          why?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-20 01:33:35 | 显示全部楼层
你Wg里的tl确实减1了,但是你后面的while里的tl仍然是最开始的全局变量tl的100,所以,你才看到tl没有减一。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-20 08:19:34 | 显示全部楼层
Zmynx_2017 发表于 2018-1-20 01:33
你Wg里的tl确实减1了,但是你后面的while里的tl仍然是最开始的全局变量tl的100,所以,你才看到tl没有减一 ...

但是全局变量y_wz,g_wz都是可以被改变的啊?   为什么‘tl’却不行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 22:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表