久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

100行代碼,實(shí)現(xiàn)python貪吃蛇

100行代碼,實(shí)現(xiàn)python貪吃蛇

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

1,游戲初始化

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

100行代碼,實(shí)現(xiàn)python貪吃蛇

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

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)操作

100行代碼,實(shí)現(xiàn)python貪吃蛇

蛇身移動(dòng)

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

100行代碼,實(shí)現(xiàn)python貪吃蛇

吃到食物

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

3,游戲結(jié)束

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

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

2,蛇頭碰到蛇身;

100行代碼,實(shí)現(xiàn)python貪吃蛇

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

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

100行代碼,實(shí)現(xiàn)python貪吃蛇

100行代碼,實(shí)現(xiàn)python貪吃蛇

文章轉(zhuǎn)載:Python編程學(xué)習(xí)圈
(版權(quán)歸原作者所有,侵刪)

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!

    1. 主站蜘蛛池模板: 灵川县| 桃园市| 饶河县| 长乐市| 兴城市| 石柱| 辛集市| 泗水县| 德江县| 南投市| 定结县| 九龙坡区| 新绛县| 当涂县| 克东县| 台州市| 新巴尔虎左旗| 马公市| 上犹县| 乡城县| 佛教| 呼和浩特市| 社旗县| 嵩明县| 阜新| 岫岩| 临洮县| 八宿县| 旺苍县| 紫阳县| 会宁县| 绵阳市| 日土县| 曲松县| 年辖:市辖区| 隆林| 绥棱县| 玉山县| 大姚县| 鸡东县| 新田县|