成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python面向?qū)ο缶毩?xí)-烏龜吃魚

劉福 / 3380人閱讀

摘要:題目要求首先放上題目要求游戲編程按以下要求定義一個烏龜類和魚類并嘗試編寫游戲假設(shè)游戲場景為范圍為游戲生成只烏龜和條魚它們的移動方向均隨機(jī)烏龜?shù)淖畲笠苿幽芰樗梢噪S機(jī)選擇還是移動,魚兒的最大移動能力是當(dāng)移動到場景邊緣,自動向反方向移動烏龜初

題目要求

首先放上題目要求:

游戲編程:按以下要求定義一個烏龜類和魚類并嘗試編寫游戲

假設(shè)游戲場景為范圍(x,y)為0<=x<=10,0<=y<=10

游戲生成1只烏龜和10條魚

它們的移動方向均隨機(jī)

烏龜?shù)淖畲笠苿幽芰?(它可以隨機(jī)選擇1還是2移動),魚兒的最大移動能力是1

當(dāng)移動到場景邊緣,自動向反方向移動

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

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

當(dāng)烏龜和魚坐標(biāo)重疊,烏龜吃掉魚,烏龜體力增加20

魚暫不計算體力

當(dāng)烏龜體力值為0(掛掉)或者魚兒的數(shù)量為0游戲結(jié)束

場景圖

代碼實現(xiàn)
import random
#烏龜類
class Turtle:
    def __init__(self):
        self.power=100 #體力
        #烏龜坐標(biāo)
        self.x=random.randint(0,10)
        self.y=random.randint(0,10)
    #烏龜移動的方法:移動方向均隨機(jī) 第四條
    def move(self):
        #計算移動后的新位置(只有四種可能)
        new_x=self.x+random.choice([1,2,-1,-2])
        new_y=self.y+random.choice([1,2,-1,-2])
        #判斷移動后是否超出邊界
        if new_x<0:
            self.x=0-new_x
        elif new_x>10:
            self.x=10-(new_x-10)
        else:
            #不越界則移動烏龜?shù)奈恢?            self.x=new_x                
        if new_y<0:
            self.y=0-new_y
        elif new_y>10:
            self.y=10-(new_y-10)
        else:
            #不越界則移動烏龜?shù)奈恢?            self.y=new_y
        self.power-=1 #烏龜每移動一次,體力消耗1           
    def eat(self):
        self.power+=20 #烏龜吃掉魚,烏龜體力增加20
        if self.power>100:
            self.power=100 #烏龜體力100(上限)

#魚類
class Fish:
    def __init__(self):
        #魚坐標(biāo)
        self.x=random.randint(0,10)
        self.y=random.randint(0,10)             
    def move(self):
        #計算移動后的新位置(只有四種可能)
        new_x=self.x+random.choice([1,-1])
        new_y=self.y+random.choice([1,-1])
        #判斷移動后是否超出邊界
        if new_x<0:
            self.x=0-new_x
        elif new_x>10:
            self.x=10-(new_x-10)
        else:
            #不越界則移動魚的位置
            self.x=new_x                
        if new_y<0:
            self.y=0-new_y
        elif new_y>10:
            self.y=10-(new_y-10)
        else:
            #不越界則移動魚的位置
            self.y=new_y       

#開始測試數(shù)據(jù)
tur=Turtle() #生成1只烏龜
fish=[] #生成10條魚
for item in range(10):
    fish.append(Fish()) #把生成的魚放到魚缸里

#判斷游戲是否結(jié)束:當(dāng)烏龜體力值為0(掛掉)或者魚兒的數(shù)量為0游戲結(jié)束  
if tur.power<0 or len(fish)==0:
    print("Game Over ~")
#游戲開始
#首先烏龜邁出第一步
# print(tur.x,tur.y) #烏龜移動前   
tur.move()
# print(tur.x,tur.y) #烏龜移動后
for item in fish:
    item.move()
    if item.x==tur.x and item.y==tur.y:
        tur.eat()
        fish.remove(item)
        print("死了一只魚")
        print("烏龜最新體力值為 %d"%tur.power)   

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41208.html

相關(guān)文章

  • Python面向對象練習(xí)-通過pygame改良烏龜吃魚

    摘要:先看看最后效果圖片的話是從網(wǎng)上小魚兒那個案例里面拿的,實現(xiàn)的功能如下是通過方向鍵操作烏龜,進(jìn)行吃魚吃魚的時候根據(jù)烏龜?shù)淖鴺?biāo)和魚的進(jìn)行檢測,在碰撞區(qū)域則干掉這條魚背景音樂和吃魚音樂的播放分?jǐn)?shù)累積魚的平滑游動控制幀頻實現(xiàn)代碼導(dǎo)入一些常用的函數(shù)烏 先看看最后效果 圖片的話是從網(wǎng)上小魚兒那個案例里面拿的,實現(xiàn)的功能如下: 是通過方向鍵操作烏龜,進(jìn)行吃魚 吃魚的時候根據(jù)烏龜?shù)膞,y坐標(biāo)和魚的x...

    jk_v1 評論0 收藏0
  • python大佬養(yǎng)成計劃--面向對象

    摘要:的名字并不是規(guī)定死的因為是形參,也可以使用,但是最好還是按照約定是用。類的私有方法兩個下劃線開頭,聲明該方法為私有方法,只能在類的內(nèi)部調(diào)用,不能在類地外部調(diào)用。。 類 面向?qū)ο缶幊叹哂腥筇匦裕憾鄳B(tài)、繼承、封裝定義:是一個抽象的模板對象:類實例化屬性:這個類實例化后的對象具有的特征方法:類對象可以執(zhí)行的函數(shù) 類的定義 class 類名 class People(object): ...

    hzc 評論0 收藏0
  • 不用看網(wǎng)課就能學(xué)到python的文章(第五天)

    摘要:類其實就是由屬性和方法組成的一個抽象概念。類和對象的關(guān)系類是模板,對象是根據(jù)類這個模板創(chuàng)建出來的,應(yīng)該先有類,再有對象。使用同一個類,能夠創(chuàng)建出很多對象。不同對象對應(yīng)的屬性值也會不同。 目錄 類 對象(實例) 類中的成員 面向?qū)ο?變量 類 類是對一群具有相同 特征 或者 行為 的...

    wenzi 評論0 收藏0
  • Java編程基礎(chǔ)10——面向對象_多態(tài)&抽象類&接口

    摘要:案例演示抽象類的成員特點抽象類的成員方法特性抽象方法強(qiáng)制要求子類做的事情。抽象類中定義的是該繼承體系的共性功能。 1.多態(tài)的概述及其成員訪問特點代碼體現(xiàn) A:多態(tài)(polymorphic)概述 事物存在的多種形態(tài) B:多態(tài)前提- 1.要有繼承關(guān)系 2.要有方法重寫 3.要有父類引用指向子類對象。 C:多態(tài)中的成員訪問特點之 成員變量:編譯和運行都看父類。 成員方法:編...

    dunizb 評論0 收藏0
  • 工廠模式理解了沒有?

    摘要:我認(rèn)為按書上的順序比較好理解因為簡單靜態(tài)工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強(qiáng)。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復(fù)雜了,我們一般的應(yīng)用都寫不到。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 昨天寫了單例模式了,今天是時候?qū)懝S模式啦~ 工廠模式我個人認(rèn)為其實比...

    蘇丹 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<