国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python面向對象練習-烏龜吃魚

劉福 / 3368人閱讀

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

題目要求

首先放上題目要求:

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

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

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

它們的移動方向均隨機

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

當移動到場景邊緣,自動向反方向移動

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

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

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

魚暫不計算體力

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

場景圖

代碼實現(xiàn)
import random
#烏龜類
class Turtle:
    def __init__(self):
        self.power=100 #體力
        #烏龜坐標
        self.x=random.randint(0,10)
        self.y=random.randint(0,10)
    #烏龜移動的方法:移動方向均隨機 第四條
    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):
        #魚坐標
        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()) #把生成的魚放到魚缸里

#判斷游戲是否結束:當烏龜體力值為0(掛掉)或者魚兒的數(shù)量為0游戲結束  
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)   

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41208.html

相關文章

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

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

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

    摘要:的名字并不是規(guī)定死的因為是形參,也可以使用,但是最好還是按照約定是用。類的私有方法兩個下劃線開頭,聲明該方法為私有方法,只能在類的內部調用,不能在類地外部調用。。 類 面向對象編程具有三大特性:多態(tài)、繼承、封裝定義:是一個抽象的模板對象:類實例化屬性:這個類實例化后的對象具有的特征方法:類對象可以執(zhí)行的函數(shù) 類的定義 class 類名 class People(object): ...

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

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

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

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

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

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

    蘇丹 評論0 收藏0

發(fā)表評論

0條評論

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