在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用python實現貪吃蛇游戲

馬哥Linux運維 ? 來源:小張Python ? 作者:zeroing ? 2021-09-29 18:05 ? 次閱讀

貪吃蛇 具體實現部分,大致分為三個模塊來介紹:游戲初始化、游戲運行(蛇移動、吃掉食物)、游戲結束

1,游戲初始化

首先,需對游戲中的 蛇、食物、游戲邊界、各元素顏色屬性、得分記錄、速度記錄 等進行初始化,初始的窗口大小設為(600,480),通過寬度為 1 的黑線將游戲窗口分為數個小方格(每個小方格大小為 (20,20))

7f7235b8-20d0-11ec-82a8-dac502259ad0.png

初始化的蛇大小占連續3個小方格;食物占 1個小方格、初始時食物隨機放置在窗口內某一坐標處(當然需要排除蛇身區域外)

7fb95bf0-20d0-11ec-82a8-dac502259ad0.png

2,游戲得分

當游戲開始時需給與 **蛇 ** 運動方向設定為一個初始參數 ,這里以二維元組形式存儲,賦值給變量 p,共分為四種情況:

p = (1,0),向右;

P = (0,-1),向下;

p = (0,1),向上;

p = (-1,0),向左;

配合鍵盤事件響應,當用戶按下 上(w)、下(s)、左(a)、右(d)鍵時,程序會執行相應操作

for event in pygame.event.get():#事件刷新 if event.type == QUIT: sys.exit()#退出 elif event.type == KEYDOWN: if event.key == K_RETURN: if game_over: start = True game_over = False b =True snake = init_snake() food = create_food(snake) food_style = get_food_style() pos = (1,0)#方向 score = 0 last_move_time = time.time()#上次移動時間

elif event.key == K_SPACE: if not game_over: pause = not pause elif event.key in(K_w,K_UP): #判斷防止蛇向上移動時按了向下鍵,導致Game Over if b and not pos[1]: pos = (0,-1) b = False elif event.key in (K_s,K_DOWN): if b and not pos[1]: pos =(0,1) b = False elif event.key in (K_a,K_LEFT): if b and not pos[0]: pos = (-1,0) b =False elif event.key in (K_d,K_RIGHT): if b and not pos[0]: pos =(1,0) b = False

蛇身移動

程序將 蛇 所占所有小方格坐標依次存儲在一個隊列中,移動一次,隊列完成一次進出操作:隊尾刪除一個元素,對列頭部插入蛇頭所在的新方格坐標;

7ff25464-20d0-11ec-82a8-dac502259ad0.png

吃到食物

每吃到一次食物,蛇身多增加一個小方格區域,其隊列插入一個新元素、長度加一,

803d4b2c-20d0-11ec-82a8-dac502259ad0.png

3,游戲結束

游戲終止的邊界條件為兩類

1,移動區域超出窗口邊界;

2,蛇頭碰到蛇身;

程序中用 布爾變量 game_over來標識游戲是否結束(True或者False),每次刷新頁面之前默認為 False,當游戲正常運行未發生以上兩類事件時設為True 游戲運行,否則游戲結束

80a6f6a8-20d0-11ec-82a8-dac502259ad0.png

為了提高游戲體驗,程序中用 score 變量表示得分,speed 來表示移動速度,得分每增加100 更新一次移動速度,隨著時間推移游戲難度也不斷加大

score += food_style[0] speed = orispeed - 0.03*(score//100) # 更新速度

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4809

    瀏覽量

    68826
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84883

原文標題:100行代碼,實現python貪吃蛇

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AI潮流下的辦公“神器”選擇,沸AI語音鼠標真正實現效率翻倍

    年終臨近,各種考核、匯報、總結也隨之而來,忙上天的白領們不得閑暇。事實上,許多流程化、模板化的工作并非困難模式,只是處理起來比較費時,這個時候AI就可以幫上忙。沸AI語音鼠標就是一款能夠幫助辦公
    的頭像 發表于 12-04 11:38 ?276次閱讀
    AI潮流下的辦公“神器”選擇,沸<b class='flag-5'>蛇</b>AI語音鼠標真正<b class='flag-5'>實現</b>效率翻倍

    如何使用Python實現PID控制

    PID控制(比例-積分-微分控制)是一種常見的反饋控制算法,廣泛應用于工業控制系統中。在Python實現PID控制,我們可以遵循以下步驟: 1. 理解PID控制原理 PID控制器有三個主要參數
    的頭像 發表于 11-14 09:09 ?587次閱讀

    何用python控制usb2any?

    我想用python控制usb2any,在網上搜索后得到的關于usb2any的資料很少,是否有官方的usb2any函數庫?
    發表于 11-08 14:36

    何用python控制usb2any?

    我想用python控制usb2any,在網上搜索后得到的關于usb2any的資料很少,是否有官方的usb2any函數庫?
    發表于 09-27 06:44

    何用 S7-200 實現 Modbus 通信?

    電子發燒友網站提供《如何用 S7-200 實現 Modbus 通信?.pdf》資料免費下載
    發表于 09-14 10:22 ?1次下載

    何用tlc2272實現200倍的放大?

    何用tlc2272實現200倍的放大,求電路圖講解一下,自己撘的始終到不了200倍啊
    發表于 09-13 07:55

    基于 FPGA 的飛機大戰游戲系統設計

    HDMI 屏,在屏上流暢的顯示游戲界面。(3) 游戲手柄驅動模塊:驅動手柄上的 PCF8591 芯片,輸出搖桿的位置狀態。(4) IIC 通信模塊:實現游戲手柄和 FPGA 的通信,
    發表于 07-24 20:03

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的方法來
    的頭像 發表于 07-18 14:53 ?448次閱讀

    神經網絡的基本原理及Python編程實現

    神經網絡作為深度學習算法的基本構建模塊,模擬了人腦的行為,通過互相連接的節點(也稱為“神經元”)實現對輸入數據的處理、模式識別和結果預測等功能。本文將深入探討神經網絡的基本原理,并結合Python編程實現進行說明。
    的頭像 發表于 07-03 16:11 ?725次閱讀

    何用python調用瀏覽器的視頻?

    linda 我想用python調用瀏覽器的視頻。 我使用cv2調用視頻流,但是失敗了。 URL=\"http://192.168.4.1/face_stream\" cap = cv2.VideoCapture(URL) print(cap.isOpened()) 輸出了false,請問該怎么
    發表于 06-26 08:15

    OrangePi AIPro/Kunpeng Pro主頻提升啦,加量不加價!

    的機械臂、智能機器人、手勢貪吃蛇、AI使用案例等吸引了眾多與會者駐足,觀看者絡繹不絕,對OrangePiAIpro表現出濃厚的興趣。與此同時,OrangePiKunp
    的頭像 發表于 05-16 17:32 ?439次閱讀
    OrangePi AIPro/Kunpeng Pro主頻提升啦,加量不加價!

    放下你手中的游戲鼠標 | 小白測功耗

    姐姐的哦讓我們一起來看看吧!1測前主要準備本次測評選取的兩款游戲鼠標包括如下品牌型號:羅技G304、雷煉獄蝰蛇V2X
    的頭像 發表于 05-13 17:09 ?1618次閱讀
    放下你手中的<b class='flag-5'>游戲</b>鼠標 | 小白測功耗

    如何使用Python生成四位隨機數字

    為了實現這些目標,Python 為我們提供了random() 模塊。random() 是一個內置的 Python 模塊,用于生成隨機數。
    的頭像 發表于 04-15 12:47 ?713次閱讀

    GOG聯手亞馬遜Luna云游戲平臺,無DRM游戲游玩即將實現

    亞馬遜Luna云游戲作為Amazon開發及運營的產品,提供于美國、加拿大、英國、德國、法國、意大利以及西班牙等多個國家。其利用AWS云服務,可實現玩家在指定設備中,以極高的游戲品質體驗多種游戲
    的頭像 發表于 03-19 14:07 ?644次閱讀

    通過Python腳本實現WIFI密碼的自動猜解

    本文將記錄學習下如何通過 Python 腳本實現 WIFI 密碼的自動猜解。
    的頭像 發表于 01-25 10:46 ?3555次閱讀
    通過<b class='flag-5'>Python</b>腳本<b class='flag-5'>實現</b>WIFI密碼的自動猜解
    主站蜘蛛池模板: 天天摸日日碰天天看免费| 午夜噜噜噜私人影院在线播放 | 性欧美极品另类| 91在线色| 在线视频 亚洲| 韩毛片| 欧美视频色| 免费看一级毛片| 国产色婷婷免费视频| 99国产国人青青视频在线观看| 在线色片| 清纯唯美亚洲综合一区| 九九国产在线| 色爱区综合激情五月综合激情| 午夜视频黄| 亚洲一区有码| 中文天堂最新版资源新版天堂资源| 在线播放色| 深夜动态福利gif动态进| 天堂8在线天堂资源在线| 中国一级特黄真人毛片免费看| 亚洲第一精品夜夜躁人人爽| 色综合天天综合| 色老头成人免费综合视频| 欧美高清视频一区| 国产成都一二三四区| 天天噜天天干| 91大神大战高跟丝袜美女| 年下攻高h好涨| 色视频在线免费| 国产免费高清福利拍拍拍| 天天躁天天狠天天透| 在线视频网址| 综合久久99| 免费的国语一级淫片| 夜夜精品视频| 在线观看视频免费入口| 中文天堂最新版资源新版天堂资源| 三级四级特黄在线观看| 国产成年网站v片在线观看| 老湿司午夜爽爽影院榴莲视频|