鱼C论坛

 找回密码
 立即注册
查看: 5685|回复: 1

[学习笔记] 乌龟吃鱼

[复制链接]
发表于 2022-11-21 22:39:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lxping 于 2022-11-21 23:04 编辑
  1. from random import *
  2.    
  3. class Trutle:
  4.     def __init__(self,name):
  5.         self.name = name
  6.         self.power = 100
  7.         self.x = randint(0,10)
  8.         self.y = randint(0,10)

  9.     def position(self):
  10.         self.power -= 1        
  11.         dire = choice(direction)
  12.         om = randint(1,2)
  13.         new_x = self.x + dire[0]*om
  14.         new_y = self.y + dire[1]*om
  15.         if new_x < legal_x[0]:
  16.             self.x = legal_x[0] - (new_x - legal_x[0])
  17.         elif new_x > legal_x[1]:
  18.             self.x = legal_x[1] - (new_x - legal_x[1])
  19.         else:
  20.             self.x = new_x
  21.         if new_y < legal_y[0]:
  22.             self.y = legal_y[0] - (new_y - legal_y[0])
  23.         elif new_y > legal_y[1]:
  24.             self.y = legal_y[1] - (new_y - legal_y[1])
  25.         else:
  26.             self.y = new_y
  27.         print(f"trutle:{self.x, self.y}")
  28.         return (self.x,self.y)

  29.     def eatfish(self):
  30.         self.power += 20
  31.         if self.power > 100:
  32.             self.power = 100

  33. class Fish:
  34.     def __init__(self,name):
  35.         self.name = name
  36.         self.x = randint(0,10)
  37.         self.y = randint(0,10)

  38.     def position(self):
  39.         dire = choice(direction)
  40.         om = 1
  41.         new_x = self.x + dire[0]*om
  42.         new_y = self.y + dire[1]*om
  43.         if new_x < legal_x[0]:
  44.             self.x = legal_x[0] - (new_x - legal_x[0])
  45.         elif new_x > legal_x[1]:
  46.             self.x = legal_x[1] - (new_x - legal_x[1])
  47.         else:
  48.             self.x = new_x
  49.         if new_y < legal_y[0]:
  50.             self.y = legal_y[0] - (new_y - legal_y[0])
  51.         elif new_y > legal_y[1]:
  52.             self.y = legal_y[1] - (new_y - legal_y[1])
  53.         else:
  54.             self.y = new_y
  55.         return (self.x,self.y)



  56. origin = (0, 0)       #原点
  57. legal_x = [0,10]      #x轴的移动范围
  58. legal_y = [0,10]      #y轴的移动范围
  59. direction = [[-1,0], [1,0], [0,1], [0,-1]]
  60. trutle = Trutle("小甲鱼")
  61. for i in range(1,11):
  62.     locals()["fish"+ str(i)] = Fish("fish"+str(i))
  63. fish_list = [fish1, fish2, fish3, fish4, fish5, fish6, fish7, fish8, fish9, fish10]
  64. trutle_pos = (trutle.x,trutle.y)
  65. for each in fish_list:
  66.     if (each.x,each.y) == trutle_pos:
  67.         trutle.eatfish()
  68.         fish_list.remove(each)
  69. print(f"还剩{len(fish_list)}条鱼")

  70. while True:
  71.     if len(fish_list) and trutle.power:
  72.         trutle_pos = trutle.position()
  73.         for each in fish_list:
  74.             each_pos = each.position()
  75.             if each_pos == trutle_pos:
  76.                 trutle.eatfish()
  77.                 fish_list.remove(each)
  78.         print(f"还剩{len(fish_list)}条鱼")

  79.     elif not len(fish_list):
  80.         print("没鱼啦~")
  81.         break
  82.     elif not trutle.power:
  83.         print("游不动啦~")
  84.         break
  85. print("游戏结束")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-11-22 15:46:27 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-12 20:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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