Python 小甲魚教程 烏龜吃魚遊戲
整個程式按照答案來敲的,我覺得按照自己的水平完全沒思路寫得出來框架,就當熟悉程式碼風格來處理吧。
import random as r
legal_x = [0,10] #先定義範圍,這裡很巧妙,用一個列表2個數字來表示,而不是一個range
legal_y = [0,10]
class Turtle:
def __init__(self):
self.power = 100
self.x=r.randint(legal_x[0],legal_x[1]) #正是因為上面的設定,下面生成初始位置就可以用randint函式來處理,這裡是生成self的初始位置x
self.y=r.randint(legal_y[0],legal_y[1]) #生成初始位置y
def move(self):
new_x=self.x+r.choice([1,2,-1,-2]) #移動一步後,新位置是原始位置加上移動距離,距離只有4種可能
new_y=self.y+r.choice([1,2,-1,-2])
if new_x <legal_x[0]: #如果X越出了負界限,則自動反向
self.x=legal_x[0]-(new_x - legal_x[0])
elif new_x>legal_x[1]: #如果X越出了正界限,則自動反向
self.x=legal_x[1]-(new_x - legal_x[1])
else:
self.x=new_x #不越界的情況下,重新整理位置,就等於移動後位置
if new_y<legal_y[0]:
self.y=legal_y[0]-(new_y - legal_y[0])
elif new_y>legal_y[1]:
self.y=legal_y[1]-(new_y - legal_y[1])
else:
self.y=new_y
self.power -= 1
return (self.x,self.y)
def eat(self): #定義動作吃,吃了以後體力加20
self.power+=20
if self.power>100: #超過體力上限100了就不變
self.power = 100
class Fish:
def __init__(self):
self.x = r.randint(legal_x[0],legal_y[1]) #這裡定義魚類,初始化位置
self.y = r.randint(legal_y[0],legal_y[1])
def move(self): #和烏龜的屬性一樣,移動功能
new_x = self.x + r.choice([1,2,-1,-2])
new_y = self.y + r.choice([1,2,-1,-2])
if new_x < legal_x[0]:
self.x = legal_x[0] - (new_x-legal_x[0])
elif new_x > legal_x[1]:
self.x = legal_x[1]-(new_x-legal_x[1])
else:
self.x = new_x
if new_y < legal_y[0]:
self.y = legal_y[0]-(new_y - legal_y[0])
elif new_y > legal_y[1]:
self.y = legal_y[1]-(new_y - legal_y[1])
else:
self.y = new_y
return (self.x,self.y)
turtle = Turtle() #例項化烏龜
fish=[] #將所有的魚放進一個list
for i in range(10):
new_fish = Fish() #在新建例項的同時,在下一行程式碼,將例項魚放進列表
fish.append(new_fish)
while True:
if not len(fish): #len(fish)在有魚的情況下是true,所以當沒魚的時候,執行下面的while迴圈,當有魚或者烏龜有體力的時候,遊戲始終迴圈
print ('no more fishes, game over')
break
if not turtle.power: #如果烏龜體力沒了,遊戲結束
print ('turtle is dead')
break
pos = turtle.move() #將烏龜例項move函式返回的位置,賦值給pos
for each_fish in fish[:]: #歷遍每條魚,魚移動後的位置和烏龜的位置有重疊,就執行吃的動作,並移除一條魚
if each_fish.move() == pos:
turtle.eat()
fish.remove(each_fish)
print ('one fish was ated')
相關文章
- 鴻蒙開發遊戲(四)---大魚吃小魚(互吃升級)鴻蒙開發遊戲
- Python 小甲魚教程 課後練習42Python
- Python:遊戲:貪吃蛇Python遊戲
- 【Python】 Python小遊戲-貪吃蛇大冒險Python遊戲
- 小甲魚python學習總結之函式——lambda fillter() map() 閉包 遞迴Python函式遞迴
- Oracle收購sun,一次大魚吃大魚的表演Oracle
- 用 Python 寫個貪吃蛇,保姆級教程!Python
- 多執行緒的Python 教程--“貪吃蛇”執行緒Python
- 探究烏龜對對碰遊戲的最優策略遊戲
- python 入門實戰改進B站小甲魚飛機大戰增強版4.0Python
- canvas繪製魚吃豆效果程式碼例項Canvas
- “拼多多”版吃雞遊戲如何擊中美國“小鎮青年”遊戲
- 零基礎學習Python__小甲魚第一課筆記與課後練習Python筆記
- Git小烏龜(torto)Git
- 利用python實現簡易版的貪吃蛇遊戲(面向python小白)Python遊戲
- 遊戲:貪吃蟲(GreedyMaggot)遊戲Go
- 經典遊戲:吃豆人遊戲
- c++經典專案控制檯貪吃蛇小遊戲詳細教程C++遊戲
- 吃豆人遊戲開發遊戲開發
- canvas吃豆小遊戲程式碼Canvas遊戲
- jQuery 實現貪吃蛇遊戲jQuery遊戲
- Python3 貪吃蛇Python
- python實現貪吃蛇Python
- Python 快速教程(補充篇02): Python小技巧Python
- 《小甲魚零基礎學Python》020課後作業題:找隱藏在長字串之中的密碼Python字串密碼
- 2011儲存:大魚與小魚的博弈薦
- [譯] RxJS 遊戲之貪吃蛇JS遊戲
- 吃雞遊戲的未來在哪兒?遊戲
- Shell寫的貪吃蛇遊戲(轉)遊戲
- 小魚JCL學習筆記(一)筆記
- 一步步教你怎麼用python寫貪吃蛇遊戲Python遊戲
- 100行Python程式碼實現貪吃蛇小遊戲(超詳細)Python遊戲
- 木魚小鋪:商家如何玩轉社群團購小程式
- 例項教程:1小時學會PythonPython
- 寫一個狼吃羊的小遊戲遊戲
- 戰術競技遊戲的吃雞之路遊戲
- js貪吃蛇遊戲程式碼例項JS遊戲
- canvas貪吃蛇遊戲程式碼例項Canvas遊戲