91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

1,游戲初始化

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

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

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

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

2,游戲得分

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

p = (1,0),向右;

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

p = (0,1),向上;

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

配合鍵盤事件響應(yīng),當(dāng)用戶按下 上(w)、下(s)、左(a)、右(d)鍵時(shí),程序會(huì)執(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()#上次移動(dòng)時(shí)間

elif event.key == K_SPACE: if not game_over: pause = not pause elif event.key in(K_w,K_UP): #判斷防止蛇向上移動(dòng)時(shí)按了向下鍵,導(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

蛇身移動(dòng)

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

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

吃到食物

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

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

3,游戲結(jié)束

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

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

2,蛇頭碰到蛇身;

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

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

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

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

責(zé)任編輯:haq

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

    關(guān)注

    30

    文章

    4968

    瀏覽量

    74011
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90078

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Python運(yùn)行本地Web服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪問

    本文介紹使用Python搭建本地Web服務(wù)并結(jié)合 ZeroNews 實(shí)現(xiàn)公網(wǎng)訪問。
    的頭像 發(fā)表于 02-06 11:39 ?163次閱讀
    <b class='flag-5'>Python</b>運(yùn)行本地Web服務(wù)并<b class='flag-5'>實(shí)現(xiàn)</b>遠(yuǎn)程訪問

    何用軟件實(shí)現(xiàn)系統(tǒng)的復(fù)位?

    看門狗的工作過程是怎樣的? 如何用軟件實(shí)現(xiàn)系統(tǒng)的復(fù)位?
    發(fā)表于 01-08 06:15

    在Termux環(huán)境下實(shí)現(xiàn)康威生命游戲

    你想要在Termux環(huán)境下實(shí)現(xiàn)康威生命游戲,并專門展示經(jīng)典的“滑翔機(jī)”模式,構(gòu)建一個(gè)能持續(xù)運(yùn)行的二維世界,同時(shí)需要完整的程序代碼和調(diào)試說明。 一、實(shí)現(xiàn)思路康威生命游戲的核心是遵循4條規(guī)
    發(fā)表于 12-21 18:36

    沒有專利的opencv-python 版本

    所有 官方發(fā)布的 opencv-python 核心版本(無 contrib 擴(kuò)展)都無專利風(fēng)險(xiǎn)——專利問題僅存在于 opencv-contrib-python 擴(kuò)展模塊中的少數(shù)算法(如早期 SIFT
    發(fā)表于 12-13 12:37

    何用FPGA控制ADV7513實(shí)現(xiàn)HDMI畫面顯示和音頻播放

    HDMI接口顯示使用DMT時(shí)序+TMDS編碼來實(shí)現(xiàn)。當(dāng)用FPGA控制HDMI的數(shù)據(jù)傳輸時(shí),通常可以采用純RTL實(shí)現(xiàn)TMDS算法或者使用專門的HDMI芯片(如ADV7513)這兩種方案來完成。本文主要是介紹如何用FPGA控制ADV
    的頭像 發(fā)表于 12-02 11:05 ?6820次閱讀
    如<b class='flag-5'>何用</b>FPGA控制ADV7513<b class='flag-5'>實(shí)現(xiàn)</b>HDMI畫面顯示和音頻播放

    Python調(diào)用API教程

    兩個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們將詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、用Requests庫發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP請(qǐng)求,通常
    的頭像 發(fā)表于 11-03 09:15 ?902次閱讀

    何用FPGA實(shí)現(xiàn)4K視頻的輸入輸出與處理

    游戲、影視和顯示領(lǐng)域,4K 已經(jīng)成為標(biāo)配。而今天,我們就來聊聊——如何用 FPGA 實(shí)現(xiàn) 4K 視頻的輸入輸出與處理。
    的頭像 發(fā)表于 10-15 10:47 ?2147次閱讀
    如<b class='flag-5'>何用</b>FPGA<b class='flag-5'>實(shí)現(xiàn)</b>4K視頻的輸入輸出與處理

    termux調(diào)試python猜數(shù)字游戲

    用termux做一個(gè)猜數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實(shí)現(xiàn)方案,結(jié)合Python實(shí)現(xiàn)(最適配Termux環(huán)境
    發(fā)表于 08-29 17:15

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 一、Termux基礎(chǔ)環(huán)境準(zhǔn)備 Termux是一款無需root即可在安卓設(shè)備上運(yùn)行的L
    發(fā)表于 08-29 07:06

    python app不能運(yùn)行怎么解決?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    發(fā)表于 08-06 06:27

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

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

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

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

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

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

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡(jiǎn)要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡(jiǎn)單的Python程序。什么是Python程序?
    的頭像 發(fā)表于 03-25 09:27 ?2061次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    讓人欲罷不能樹莓派貪吃蛇掌機(jī)!

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