最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)簡單貪吃蛇小游戲

 更新時間:2022年06月08日 11:52:04   作者:側(cè)耳聽偑  
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)簡單貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)簡單貪吃蛇的具體代碼,供大家參考,具體內(nèi)容如下

1. 導(dǎo)入游戲庫

import pgzrun
import random

2.游戲初始化

# 窗口大小
WIDTH = 600
HEIGHT = 480
# 貪吃蛇
bodys = [ [100,100],[80,100], [60,100], [40,100], [20,100]]
head = [100,100]
d = 'right'
# 食物
food = [290,290]
# 得分
score=0

3.游戲窗口繪制

def draw():
#清空屏幕
screen.clear()
# 繪制網(wǎng)格
for i in range(1,24):
screen.draw.line((0,i*20),(600,i*20),'gray')
for i in range(1,30):
screen.draw.line((i*20,0),(i*20,480),'gray')
#繪制蛇
for body in bodys:
rect = Rect(body,(20,20))
screen.draw.filled_rect(rect,(0,0,255))
inner = [body[0]+2,body[1]+2]
rect = Rect(inner, (15, 15),center='center')
screen.draw.filled_rect(rect, (0, 0, 180))
# 繪制頭
rect = Rect(head, (20, 20))
screen.draw.filled_rect(rect, (0, 200,0))
inner = [head[0] + 2, head[1] + 2]
rect = Rect(inner, (15, 15))
screen.draw.filled_rect(rect, (0, 255, 12))
# 繪制食物
screen.draw.filled_circle(food,10, '#ffddee')
# 繪制得分
screen.draw.text('score:'+str(score),(20, 20), color="orange",fontsize=30)

4.蛇的移動功能

def run():
global food,d,head,bodys,score
# 新增一個格子的身體
if d=='right':
head[0] += 20
elif d=='left':
head[0] -= 20
elif d=='up':
head[1] -= 20
else:
head[1] += 20
bodys.insert(0,list(head))
if head[0] == food[0]-10 and head[1] == food[1] - 10:
food = [random.randint(1,30)*20-10,random.randint(1,20)*20-10]
score+=1
if score>3:
clock.unschedule(run)
clock.schedule_interval(run, 0.1)
else:
bodys.pop()
# 撞墻后重新開始
if head[0]<0 or head[0]>580 or head[1]<0 or head[1]>480 or head in
bodys[1:]:
# 蛇回到初始位置
bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
head = [100, 100]
# 方向向右
d = 'right'
# 得分清零
score=0
clock.unschedule(run)
clock.schedule_interval(run, 0.3)

5.按鍵控制蛇的行走方向

# 按鍵控制蛇的行走方向
def on_key_down(key):
global d
# 改變方向
if key == keys.DOWN and d != 'up':
d = 'down'
if key == keys.UP and d != 'down':
d = 'up'
if key == keys.LEFT and d != 'right':
d = 'left'
if key == keys.RIGHT and d != 'left':
d = 'right'

6.啟動游戲

# 定時設(shè)置
clock.schedule_interval(run, 0.3)
# 播放音樂
music.play('music.mp3')
# 啟動游戲
pgzrun.go()

完整代碼

# 1.導(dǎo)入庫
import pgzrun
import random

# 2.初始化
# 窗口大小
WIDTH = 600
HEIGHT = 480
# 貪吃蛇
bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
head = [100, 100]
d = 'right'
# 食物
food = [290, 290]
# 得分
score = 0

# 3.游戲窗口繪制
def draw():
? ? # 清空屏幕
? ? screen.clear()
? ? # 繪制網(wǎng)格
? ? for i in range(1, 24):
? ? ? ? screen.draw.line((0, i * 20), (600, i * 20), 'gray')
? ? for i in range(1, 30):
? ? ? ? screen.draw.line((i * 20, 0), (i * 20, 480), 'gray')
? ? # 繪制蛇
? ? for body in bodys:
? ? ? ? rect = Rect(body, (20, 20))
? ? ? ? screen.draw.filled_rect(rect, (0, 0, 255))
? ? ? ? inner = [body[0] + 2, body[1] + 2]
? ? ? ? rect = Rect(inner, (15, 15), center='center')
? ? ? ? screen.draw.filled_rect(rect, (128, 0, 128)) # 紫色

? ? # 繪制頭
? ? rect = Rect(head, (20, 20))
? ? screen.draw.filled_rect(rect, (0, 200, 0))
? ? inner = [head[0] + 2, head[1] + 2]
? ? rect = Rect(inner, (15, 15))
? ? screen.draw.filled_rect(rect, (0, 255, 12))
? ? # 繪制食物 顏色為紅色
? ? screen.draw.filled_circle(food, 10, '#ff0000')
? ? # 繪制得分
? ? screen.draw.text('score:' + str(score), (20, 20), color="red", fontsize=30)

# 4.蛇的移動功能
def run():
? ? global food, d, head, bodys, score
? ? # 新增一個格子的身體
? ? if d == 'right':
? ? ? ? head[0] += 20
? ? elif d == 'left':
? ? ? ? head[0] -= 20
? ? elif d == 'up':
? ? ? ? head[1] -= 20
? ? else:
? ? ? ? head[1] += 20
? ? bodys.insert(0, list(head))
? ? if head[0] == food[0] - 10 and head[1] == food[1] - 10:
? ? ? ? food = [random.randint(1, 30) * 20 - 10, random.randint(1, 20) * 20 - 10]
? ? ? ? score += 1
? ? ? ? if score > 10:
? ? ? ? ? ? clock.unschedule(run)
? ? ? ? ? ? clock.schedule_interval(run, 0.1)
? ? else:
? ? ? ? bodys.pop()
? ? # 撞墻后重新開始
? ? if head[0] < 0 or head[0] > 580 or head[1] < 0 or head[1] > 480 or head in bodys[1:]:
? ? ? ? # 蛇回到初始位置
? ? ? ? bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
? ? ? ? head = [100, 100]
? ? ? ? # 方向向右
? ? ? ? d = 'right'
? ? ? ? # 得分清零
? ? ? ? score = 0
? ? ? ? clock.unschedule(run)
? ? ? ? clock.schedule_interval(run, 0.3)


# 按鍵控制蛇的行走方向
def on_key_down(key):
? ? global d
? ? # 改變方向
? ? if key == keys.DOWN and d != 'up':
? ? ? ? d = 'down'
? ? if key == keys.UP and d != 'down':
? ? ? ? d = 'up'
? ? if key == keys.LEFT and d != 'right':
? ? ? ? d = 'left'
? ? if key == keys.RIGHT and d != 'left':
? ? ? ? d = 'right'

# 6.啟動游戲
# 定時設(shè)置
clock.schedule_interval(run, 0.3)
# 播放音樂
music.play('music.mp3')
# 啟動游戲
pgzrun.go()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python保留小數(shù)位的三種實現(xiàn)方法

    python保留小數(shù)位的三種實現(xiàn)方法

    本文給大家分享python保留小數(shù)位的三種方法,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python中類似于jquery的pyquery庫用法分析

    Python中類似于jquery的pyquery庫用法分析

    這篇文章主要介紹了Python中類似于jquery的pyquery庫用法,結(jié)合實例形式分析了pyquery庫的概念、原理、使用方法及操作技巧,需要的朋友可以參考下
    2019-12-12
  • python實現(xiàn)裝飾器、描述符

    python實現(xiàn)裝飾器、描述符

    本篇文章通過代碼實例給大家分享了python實現(xiàn)裝飾器、描述符模擬代碼的過程,對戲需要的讀者可以參考下。
    2018-02-02
  • 基于Python實現(xiàn)牛牛套圈小游戲的示例代碼

    基于Python實現(xiàn)牛牛套圈小游戲的示例代碼

    “幸運牛牛套圈圈”套住歡樂,圈住幸福,等你來挑戰(zhàn)!這篇文章小編主要為大家介紹一款基于Python實現(xiàn)牛牛套圈小游戲,感興趣的小伙伴可以了解一下
    2023-02-02
  • 520使用Python實現(xiàn)“我愛你”表白

    520使用Python實現(xiàn)“我愛你”表白

    這篇文章主要介紹了520使用Python實現(xiàn)“我愛你”表白,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python類方法__init__和__del__構(gòu)造、析構(gòu)過程分析

    Python類方法__init__和__del__構(gòu)造、析構(gòu)過程分析

    這篇文章主要介紹了Python類方法__init__和__del__構(gòu)造、析構(gòu)過程分析,本文分析了什么時候構(gòu)造、什么時候析構(gòu)、成員變量如何處理、Python中的共享成員函數(shù)如何訪問等問題,需要的朋友可以參考下
    2015-03-03
  • Django1.11配合uni-app發(fā)起微信支付的實現(xiàn)

    Django1.11配合uni-app發(fā)起微信支付的實現(xiàn)

    這篇文章主要介紹了Django1.11配合uni-app發(fā)起微信支付的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python Flask利用SocketIO庫實現(xiàn)圖表的繪制

    Python Flask利用SocketIO庫實現(xiàn)圖表的繪制

    這篇文章主要為大家詳細(xì)介紹了Python Flask框架如何利用SocketIO庫實現(xiàn)圖表的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • Python+matplotlib+numpy繪制精美的條形統(tǒng)計圖

    Python+matplotlib+numpy繪制精美的條形統(tǒng)計圖

    這篇文章主要介紹了Python+matplotlib+numpy繪制精美的條形統(tǒng)計圖,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python關(guān)于時間序列calendar模塊的深入講解

    Python關(guān)于時間序列calendar模塊的深入講解

    calendar,是與日歷相關(guān)的模塊。calendar模塊文件里定義了很多類型,主要有Calendar,TextCalendar以及HTMLCalendar類型。其中,Calendar是TextCalendar與HTMLCalendar的基類
    2021-11-11

最新評論

衡水市| 龙州县| 五莲县| 临沭县| 揭东县| 尖扎县| 来宾市| 西青区| 西丰县| 潢川县| 聂拉木县| 仙桃市| 平顺县| 兖州市| 体育| 抚顺市| 江永县| 仙居县| 翼城县| 松江区| 宁国市| 灵石县| 抚顺市| 聂荣县| 和硕县| 鹤山市| 津市市| 北海市| 鹿泉市| 黄骅市| 峨山| 塘沽区| 连州市| 绥滨县| 阿尔山市| 张掖市| 雷波县| 登封市| 汤原县| 定襄县| 扶风县|