遊戲規則:
遊戲程式設計:按照以下遊戲編寫乙個烏龜類和魚類,並嘗試編寫遊戲。**:假設遊戲場景(x,y)為0<=x<=10,0<=y<=10
遊戲生成1只烏龜和10隻魚
他們的移動方向均隨機
烏龜的最大移動速度為2,它可以隨機選擇1還是2移動,魚兒的最大移動能力是1
當移動到最大邊界時,自動反方向移動
烏龜初始化體力為100(上限)
烏龜每移動一次,體力消耗1
當烏龜和魚座標重疊,烏龜吃掉魚,烏龜體力增加20
魚不考慮體力
當烏龜體力為0或者魚兒的數量為0時遊戲結束
1import
random as r23
#from random import choice4#
定義邊界
5 boundary_x = [0, 10]
6 boundary_y = [0, 10]78
9#定義烏龜類
10class
tortoise:
11def
__init__
(self):
1213
#count=1
14 self.physical_power = 100
15 self.x = r.randint(boundary_x[0], boundary_x[1])
16 self.y = r.randint(boundary_y[0], boundary_y[1])
1718
defmove(self):19#
隨機選擇移動速度和移動方向
20 new_x = self.x + r.choice([1, 2, -1, -2])
21 new_y = self.y + r.choice([1, 2, -1, -2])22#
print("烏龜當前座標是:",self.x,self.y)23#
print("烏龜當前速度是:",self.speed)24#
當移動到x軸最大邊界時,自動反方向移動
25if new_x > boundary_x[1]:
26 self.x = boundary_x[1] - (new_x - boundary_x[1])
27elif new_x 28 self.x = boundary_x[0] - (new_x -boundary_x[0])
29else
:30 self.x =new_x
3132
#當移動到y軸最大邊界時,自動反方向移動
33if new_y > boundary_y[1]:
34 self.x = boundary_y[1] - (new_y - boundary_y[1])
35elif new_y 36 self.y = boundary_y[0] - (new_y -boundary_y[0])
37else
:38 self.y =new_y
3940
#體力消耗加1
41 self.physical_power -= 1
4243
return
(self.x, self.y)
4445
defeat(self):
46 self.physical_power += 20 #
體力增加20
47if self.physical_power > 100:
48 self.physical_power = 100
4950
51class
fish:
52def
__init__
(self):
5354
#count=10
55 self.x = r.randint(boundary_x[0], boundary_x[1])
56 self.y = r.randint(boundary_y[0], boundary_y[1])57#
設定移動速度58#
speed = 1
5960
defmove(self):61#
隨機選擇移動速度和移動方向
62 new_x = self.x + r.choice([1, -1])
63 new_y = self.y + r.choice([1, -1])64#
當移動到x軸最大邊界時,自動反方向移動
65if new_x > boundary_x[1]:
66 self.x = boundary_x[1] - (new_x - boundary_x[1])
67elif new_x 68 self.x = boundary_x[0] - (new_x -boundary_x[0])
69else
:70 self.x =new_x
7172
#當移動到y軸最大邊界時,自動反方向移動
73if new_y > boundary_y[1]:
74 self.x = boundary_y[1] - (new_y - boundary_y[1])
75elif new_y 76 self.y = boundary_y[0] - (new_y -boundary_y[0])
77else
:78 self.y =new_y
7980
return
(self.x, self.y)
8182
83 fish =
84 tor =tortoise()
85for i in range(10):
86 new_fish =fish()
8788
89while 1:
90if len(fish) ==0:
91print("
魚兒都被吃光了,遊戲結束!")
92break
93if tor.physical_power ==0:
94print("
烏龜體力耗完了,遊戲結束!")
95break
9697 pos =tor.move()
98print("
烏龜座標是:
", pos)
99for each_fish in
fish[:]:
100 f =each_fish.move()
101print("
魚兒座標是:
", f)
102if f ==pos:
103tor.eat()
104fish.remove(each_fish)
105print("
------------有一條魚被吃掉了!----------------
")
大魚吃小魚
有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?input 第1行 1個數n,表示魚的數量 1 n 100000 第2 n 1行 每...
大魚吃小魚
有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?input 第1行 1個數n,表示魚的數量 1 n 100000 第2 n 1行 每...
大魚吃小魚(棧)
有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?input第1行 1個數n,表示魚的數量 1 n 100000 第2 n 1行 每行...