日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

1,游戲初始化

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

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

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

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

2,游戲得分

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

p = (1,0),向右;

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

p = (0,1),向上;

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

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

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

吃到食物

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

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

3,游戲結束

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

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

2,蛇頭碰到蛇身;

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

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

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

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

責任編輯:haq

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

    關注

    30

    文章

    4977

    瀏覽量

    74420
  • python
    +關注

    關注

    58

    文章

    4889

    瀏覽量

    90330

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用Python/MyHDL創(chuàng)建自定義FPGA IP

    使用 Python/MyHDL 創(chuàng)建自定義 FPGA IP,與 Vivado 集成,并通過 PYNQ 進行控制——實現(xiàn)軟件上的簡單硬件設計。
    的頭像 發(fā)表于 04-09 09:53 ?293次閱讀
    使用<b class='flag-5'>Python</b>/MyHDL創(chuàng)建自定義FPGA IP

    使用PYTHON進行的跨平臺仿真

    快速物理光學軟件VirtualLab Fusion以其“連接場求解器”方法而自豪,該方法將應用于不同組件上的專用電磁場求解器結合在一起,以實現(xiàn)整個系統(tǒng)的物理光學模擬。這種方法的邏輯擴展不僅是連接軟件
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運行VirtualLab Fusion光學仿真

    摘要 VirtualLab Fusion允許Python外部訪問其建模技術、求解器和結果。這個用例介紹了一種使用路徑變量和Visual Studio代碼將Python連接到VirtualLab
    發(fā)表于 03-31 09:39

    使用MoonBit和Raylib構建原生移動端游戲

    當你想做一個簡單的手機游戲,比如 Flappy Bird、2048、貪吃蛇——你的第一反應可能是打開 Unity 或者 Godot。但你有沒有想過:對于一個只需要畫幾個矩形和圓的游戲,你真的需要一個完整的
    的頭像 發(fā)表于 03-14 11:21 ?852次閱讀
    使用MoonBit和Raylib構建原生移動端<b class='flag-5'>游戲</b>

    Python運行本地Web服務并實現(xiàn)遠程訪問

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

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

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

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

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

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

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

    Python調用API教程

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

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

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

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

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

    termux如何搭建python游戲

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

    python app不能運行怎么解決?

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

    游戲手柄振動馬達:沉浸式游戲體驗的核心

    游戲手柄振動馬達是現(xiàn)代游戲設備中不可或缺的一部分,它為玩家提供了更加沉浸式的游戲體驗。通過精確的振動反饋,游戲手柄振動馬達能夠將游戲中的動作
    的頭像 發(fā)表于 05-17 00:05 ?1120次閱讀

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

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力很多讀者反饋:通過 《用MCP將百度地圖能力輕松接入DeepSeek》 和 《如何用DeepSeek+MCP實現(xiàn)AutoGLM沉思的能力?》 的實戰(zhàn),真真切切
    的頭像 發(fā)表于 05-07 16:07 ?3095次閱讀
    如<b class='flag-5'>何用</b>FastMCP快速開發(fā)自己的MCP Server?
    来凤县| 区。| 万全县| 临城县| 米易县| 嘉禾县| 广昌县| 崇明县| 墨竹工卡县| 瑞昌市| 赣榆县| 灵宝市| 武宣县| 庆云县| 新乐市| 江阴市| 华蓥市| 秦安县| 逊克县| 江安县| 高台县| 永泰县| 涿鹿县| 罗城| 松桃| 永州市| 克东县| 泰兴市| 南华县| 东丰县| 晋城| 漳平市| 缙云县| 理塘县| 肥西县| 佳木斯市| 元谋县| 金坛市| 鄂尔多斯市| 聂拉木县| 区。|