遊戲 大魚吃小魚

2021-09-09 05:15:57 字數 3621 閱讀 8675

遊戲規則:

遊戲程式設計:按照以下遊戲編寫乙個烏龜類和魚類,並嘗試編寫遊戲。

假設遊戲場景(x,y)為0<=x<=10,0<=y<=10

遊戲生成1只烏龜和10隻魚

他們的移動方向均隨機

烏龜的最大移動速度為2,它可以隨機選擇1還是2移動,魚兒的最大移動能力是1

當移動到最大邊界時,自動反方向移動

烏龜初始化體力為100(上限)

烏龜每移動一次,體力消耗1

當烏龜和魚座標重疊,烏龜吃掉魚,烏龜體力增加20

魚不考慮體力

當烏龜體力為0或者魚兒的數量為0時遊戲結束

**:

1

import

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行 每行...