一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用python實現(xiàn)貪吃蛇游戲

馬哥Linux運維 ? 來源:小張Python ? 作者:zeroing ? 2021-09-29 18:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

1,游戲初始化

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

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

初始化的蛇大小占連續(xù)3個小方格;食物占 1個小方格、初始時食物隨機放置在窗口內(nèi)某一坐標(biāo)處(當(dāng)然需要排除蛇身區(qū)域外)

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

2,游戲得分

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

p = (1,0),向右;

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

p = (0,1),向上;

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

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

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): #判斷防止蛇向上移動時按了向下鍵,導(dǎo)致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

蛇身移動

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

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

吃到食物

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

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

3,游戲結(jié)束

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

1,移動區(qū)域超出窗口邊界;

2,蛇頭碰到蛇身;

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

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

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

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

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70756
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86766

原文標(biāo)題:100行代碼,實現(xiàn)python貪吃蛇

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    何用FastMCP快速開發(fā)自己的MCP Server?

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力很多讀者反饋:通過 《用MCP將百度地圖能力輕松接入DeepSeek》 和 《如何用DeepSeek+MCP實現(xiàn)AutoGLM沉思的能力?》 的實戰(zhàn),真真切切
    的頭像 發(fā)表于 05-07 16:07 ?1399次閱讀
    如<b class='flag-5'>何用</b>FastMCP快速開發(fā)自己的MCP Server?

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內(nèi)容; 第二部分將理論付諸實踐,講解如何開發(fā)三個項目,包括簡單的Python 2D 游戲開發(fā)如何利用數(shù)據(jù)
    發(fā)表于 04-10 16:53

    客廳變游戲室?如何用樹莓派實現(xiàn) Moonlight 游戲流媒體

    在這個項目中,我們將向您展示如何使用Moonlight將游戲直接流式傳輸?shù)侥腞aspberryPi。Moonlight:https://moonlight-stream.org/Moonlight
    的頭像 發(fā)表于 03-25 09:37 ?784次閱讀
    客廳變<b class='flag-5'>游戲</b>室?如<b class='flag-5'>何用</b>樹莓派<b class='flag-5'>實現(xiàn)</b> Moonlight <b class='flag-5'>游戲</b>流媒體

    讓人欲罷不能樹莓派貪吃蛇掌機!

    經(jīng)典游戲貪吃蛇》的掌機,并為其設(shè)計了定制的3D打印外殼。這款掌機基于配備RP2350處理器的最新型號RaspberryPiPico2打造。與常規(guī)LCD或OLED
    的頭像 發(fā)表于 03-25 09:21 ?279次閱讀
    讓人欲罷不能樹莓派<b class='flag-5'>貪吃蛇</b>掌機!

    使用Python實現(xiàn)xgboost教程

    使用Python實現(xiàn)XGBoost模型通常涉及以下幾個步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評估和模型預(yù)測。以下是一個詳細(xì)的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?1382次閱讀

    AN-737: 如何用ADIsimADC完成ADC建模

    電子發(fā)燒友網(wǎng)站提供《AN-737: 如何用ADIsimADC完成ADC建模.pdf》資料免費下載
    發(fā)表于 01-13 14:54 ?0次下載
    AN-737: 如<b class='flag-5'>何用</b>ADIsimADC完成ADC建模

    AI潮流下的辦公“神器”選擇,沸AI語音鼠標(biāo)真正實現(xiàn)效率翻倍

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

    如何使用Python實現(xiàn)PID控制

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

    何用python控制usb2any?

    我想用python控制usb2any,在網(wǎng)上搜索后得到的關(guān)于usb2any的資料很少,是否有官方的usb2any函數(shù)庫?
    發(fā)表于 11-08 14:36

    激光焊接技術(shù)在焊接醫(yī)療內(nèi)窺鏡骨的工藝優(yōu)勢

    隨著醫(yī)療技術(shù)的不斷進步,內(nèi)窺鏡在醫(yī)療診斷和治療中的應(yīng)用日益廣泛。內(nèi)窺鏡骨作為其關(guān)鍵部件,對焊接技術(shù)提出了極高的要求。激光焊接機以其高精度、高效率、低熱影響等優(yōu)點,成為焊接醫(yī)療內(nèi)窺鏡骨的理想選擇
    的頭像 發(fā)表于 11-05 16:55 ?554次閱讀
    激光焊接技術(shù)在焊接醫(yī)療內(nèi)窺鏡<b class='flag-5'>蛇</b>骨的工藝優(yōu)勢

    何用python控制usb2any?

    我想用python控制usb2any,在網(wǎng)上搜索后得到的關(guān)于usb2any的資料很少,是否有官方的usb2any函數(shù)庫?
    發(fā)表于 09-27 06:44

    何用 S7-200 實現(xiàn) Modbus 通信?

    電子發(fā)燒友網(wǎng)站提供《如何用 S7-200 實現(xiàn) Modbus 通信?.pdf》資料免費下載
    發(fā)表于 09-14 10:22 ?2次下載

    何用tlc2272實現(xiàn)200倍的放大?

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

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?3284次閱讀

    基于 FPGA 的飛機大戰(zhàn)游戲系統(tǒng)設(shè)計

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