日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python使用海龜繪圖實現貪吃蛇游戲

瀏覽:174日期:2022-06-16 13:17:08

在實現貪吃蛇游戲時,首先需要使用python內置的turtle模塊來實現創建游戲窗體與鍵盤按鍵的監聽工作,然后使用freegames模塊進行貪吃蛇的繪制工作。

1、turtle模塊

turtle模塊是python的內置模塊,所以在使用前需要使用import導入該模塊。代碼如下:

import turtle

(1) 創建游戲窗體可以使用turtle模塊中的setup()方法來實現。語法格式如下:

turtle.setup(width=_CFG['width'],height=_CFG['height'],startx=_CFG['leftright'],starty=_CFG['topbottom'])

參數說明如下:

width:表示窗體的寬度,如果是整數,大小以像素為單位,如果是浮動,則為屏幕的一小部分;默認值為屏幕的50%。 height:表示窗體的高度,如果是整數,高度以像素為單位,如果是浮動,則為屏幕的一小部分;默認值為屏幕的75%。 startx:表示窗體顯示在屏幕的橫向位置,如果為正,則以像素為單位從屏幕左邊緣開始,如果為負,則從右邊緣開始,如果沒有,則水平居中窗口。 starty:表示窗體顯示在屏幕的縱向位置,如果為正,則以像素為單位從屏幕上邊緣開始,如果為負,則從下邊緣開始,如果沒有,則垂直居中窗口。

創建游戲窗體的關鍵代碼如下:

import turtle # 導入繪圖海龜模塊turtle.setup(420, 420) # 創建窗體大小turtle.done() # 停止畫筆繪制,但繪圖窗體不關閉

(2)通過turtle模塊中的onkey()方法可以實現對應鍵盤中按鍵的監聽工作。語法格式如下:

turtle.onkey(fun,key)

參數說明如下:

fun:表示需要執行的方法。 key:該參數為字符串,表示鍵盤中對應的按鍵,例如“a”或“space”。

注意:在使用onkey()方法實現鍵盤的監聽時,還需要調用turtle.listen()方法即可實現鍵盤按鍵的監聽。

實現鍵盤中上、下、左、右按鍵監聽工作的關鍵代碼如下:

turtle.listen()# 事件監聽器turtle.onkey(lambda: change(10, 0), ’Right’) # 按鍵盤右鍵,蛇向右走turtle.onkey(lambda: change(-10, 0), ’Left’) # 按鍵盤左鍵,蛇向左走turtle.onkey(lambda: change(0, 10), ’Up’) # 按鍵盤上鍵,蛇向上走turtle.onkey(lambda: change(0, -10), ’Down’) # 按鍵盤下鍵,蛇向下走

2、freegames模塊

freegames模塊是第三方模塊,所以在使用前需要先通過以下命令進行模塊的安裝:

pip install freegames

模塊安裝完成以后,首先需要導入freegames模塊中的vector與square函數。代碼如下:

from freegames import vector,square # 導入向量類與繪圖函數

(1)通過freegames模塊中的vector()類可以根據指定的x、y坐標創建一個二維向量對象。vector()類的語法格式如下:

class freegames.vector(x,y)

參數說明如下:

x:表示橫向坐標。 y:表示縱向坐標。

實現定義游戲中的食物位置、蛇位置以及蛇移動的位置與距離。關鍵代碼如下:

food = vector(0,0)# 食物snake = [vector(10, 0)] # 蛇position = vector(0, -10) # 移動位置,一步的距離為10

(2)通過freegames模塊中square函數可以實現在(x,y)處繪制指定邊長大小的正方形,并填充指定顏色。square()函數的語法格式如下:

freegames.square(x,y,size,name)

參數說明如下:

x:表示橫向坐標。 y:表示縱向坐標。 size:表示繪制正方形的邊長。 name:表示填充顏色的名稱。

實現繪制游戲中食物、蛇。關鍵代碼如下:

square(body.x, body.y, 9, ’black’) # 繪制黑色蛇square(food.x, food.y, 9, ’green’) # 繪制綠色食物

實例

from random import randrange # 導入隨機函數from freegames import vector,square # 導入向量函數與繪圖函數import turtle # 導入繪圖海龜模塊food = vector(0,0)# 食物snake = [vector(10, 0)] # 蛇position = vector(0, -10) # 移動位置,一步的距離為10def change(x, y):# 改變蛇的移動方向 position.x = x position.y = ydef is_inside(head):# 判斷蛇頭是否在窗體內 return -200 < head.x < 190 and -200 < head.y < 190def move(): # 可以讓蛇移動的方法 head = snake[-1].copy() # 確定蛇頭的位置 head.move(position)# 移動一步 if not is_inside(head) or head in snake: # 如果蛇的頭部位于邊界外或者蛇頭在蛇的身體中square(head.x, head.y, 9, ’red’) # 繪制紅色蛇頭,說明游戲結束turtle.update() # 更新return snake.append(head) # 更新蛇的位置 if head == food: # 如果蛇吃到食物print(’Snake:’, len(snake)) # 根據蛇的長度進行加分food.x = randrange(-15, 15) * 10 # 隨機生成食物x坐標food.y = randrange(-15, 15) * 10 # 隨機生成食物y坐標 else:snake.pop(0) # 移除蛇走過的坐標 turtle.clear() # 清空蛇走過的位置 for body in snake: # 循環遍歷蛇的坐標square(body.x, body.y, 9, ’black’) # 繪制黑色蛇 square(food.x, food.y, 9, ’green’) # 繪制綠色食物 turtle.update() turtle.ontimer(move, 100) # 定時執行move函數if __name__ == ’__main__’: # 程序入口 turtle.setup(420, 420, 370, 0) # 創建窗體大小 turtle.hideturtle() # 隱藏箭頭顯示 turtle.tracer(False) # 關閉繪畫效果 move() # 調用讓蛇移動的方法 turtle.listen()# 事件監聽器 turtle.onkey(lambda: change(10, 0), ’Right’) # 按鍵盤右鍵,蛇向右走 turtle.onkey(lambda: change(-10, 0), ’Left’) # 按鍵盤左鍵,蛇向左走 turtle.onkey(lambda: change(0, 10), ’Up’) # 按鍵盤上鍵,蛇向上走 turtle.onkey(lambda: change(0, -10), ’Down’) # 按鍵盤下鍵,蛇向下走 turtle.done() # 停止畫筆繪制,但繪圖窗體不關閉

更多關于python游戲的精彩文章請點擊查看以下專題:

python俄羅斯方塊游戲集合

python經典小游戲匯總

python微信跳一跳游戲集合

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

JavaScript經典游戲 玩不停

java經典小游戲匯總

javascript經典小游戲匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品porn| 亚洲综合激情在线| 欧美一区影院| 国产亚洲一区| 精品成人18| 99久久精品网站| 午夜久久99| 日韩激情av在线| 国产一区二区三区四区五区 | 日韩在线卡一卡二| 综合国产在线| 麻豆视频一区| 三级小说欧洲区亚洲区| 视频一区视频二区在线观看| 日韩黄色av| 日韩国产欧美| 先锋亚洲精品| 国产精品观看| 久久一区二区三区电影| 日韩精品欧美精品| 久久久久伊人| 黄色精品网站| 国产精品一卡| 欧美freesex黑人又粗又大| 亚洲一级二级| 青青草伊人久久| 国产麻豆久久| 69堂免费精品视频在线播放| 婷婷综合六月| 日本va欧美va精品| 久久九九电影| 欧美日韩一区二区高清| 国产91一区| 国产精品久久久网站| 欧美日韩国产免费观看视频| 国产麻豆一区二区三区精品视频| 日韩在线综合| 日韩欧美精品一区二区综合视频| 久久亚洲精品中文字幕| 日韩制服丝袜av| 成人欧美一区二区三区的电影| 国产一区91| 91亚洲人成网污www| 亚洲+小说+欧美+激情+另类| 成人日韩精品| 国产精品色婷婷在线观看| 亚洲精品一二三区区别| 国产精品美女午夜爽爽| 91久久在线| 国产成人精品999在线观看| 偷拍亚洲精品| 婷婷精品视频| 久久久久黄色| 丝袜美腿亚洲色图| 色偷偷色偷偷色偷偷在线视频| 偷拍亚洲精品| aa亚洲婷婷| 麻豆精品蜜桃| 麻豆91精品视频| 香蕉久久一区| 日韩视频不卡| 色婷婷精品视频| 久久中文欧美| 日韩av在线免费观看不卡| 99国产精品| 99久久夜色精品国产亚洲狼 | 国产亚洲一级| 91精品蜜臀一区二区三区在线 | 视频在线观看91| 91精品在线观看国产| 精品一区视频| 国产精品嫩模av在线| 天堂va在线高清一区| 亚洲欧美日韩精品一区二区| 91精品在线观看国产| 国产videos久久| 精品午夜视频| 国产高清精品二区| 日韩国产欧美在线视频| 蜜臀国产一区二区三区在线播放| 久久精品国产www456c0m| 日韩在线不卡| a日韩av网址| 日本美女一区| 国产不卡人人| 亚洲深夜视频| 久久久噜噜噜| 激情久久中文字幕| 国户精品久久久久久久久久久不卡 | 国产理论在线| 国产精品mv在线观看| 欧美日一区二区在线观看| 欧美一区激情| 国产精品最新自拍| 麻豆久久一区二区| 日本久久综合| 日韩成人免费| 亚洲天堂1区| 国产真实久久| 国产美女一区| 日本成人精品| 久久久久九九精品影院| 麻豆国产欧美日韩综合精品二区| 国产精品久久久久久久久久白浆| 久久精品99久久久| 国产精品nxnn| 亚洲国产欧美日本视频| 欧美精品高清| 狠狠操综合网| 亚洲深深色噜噜狠狠爱网站 | 天堂中文av在线资源库| 成人午夜国产| 91久久在线| 日韩高清在线不卡| 欧美成人aaa| 日韩.com| 尤物在线精品| 亚洲精品美女| 欧美91在线| 婷婷国产精品| 亚洲ab电影| 国产一区二区精品久| 久久精品国内一区二区三区水蜜桃| 亚洲成人三区| 日韩av一区二区三区四区| 大香伊人久久精品一区二区| 99久久久久| 亚洲综合婷婷| 国产欧美大片| 99精品网站| 亚洲精品在线国产| 色婷婷色综合| 在线一区二区三区视频| 成人在线超碰| 日韩一区欧美二区| 久久99蜜桃| 国产一区亚洲| 国产欧美自拍一区| 999久久久91| 日本不卡视频在线| 日韩在线观看不卡| 日韩在线观看中文字幕| 国产66精品| 亚洲精品视频一二三区| 国产夫妻在线| 成人羞羞在线观看网站| 亚洲字幕久久| 日本不良网站在线观看| 中文字幕av一区二区三区人| 国产成人精品福利| 亚洲在线电影| 欧美激情网址| 蜜桃一区二区三区在线| 不卡福利视频| 青草av.久久免费一区| 午夜精品久久久久久久久久蜜桃| 亚洲精品国产日韩| 久久要要av| 久久久国产精品网站| 伊人久久大香伊蕉在人线观看热v| 精品久久影院| 日韩精品社区| 亚洲一区国产一区| 日韩大片免费观看| 国产乱论精品| 国产一区二区三区视频在线| 日本不卡视频在线观看| 欧美精品九九| 日韩综合一区| 欧美日本不卡| 人人精品人人爱| 精品国模一区二区三区| 精品国产乱码久久久久久樱花 | 亚洲精品少妇| 亚洲成人国产| 国产中文欧美日韩在线| 欧美在线看片| 中文字幕成人| 亚洲欧美视频| 最新日韩av| 久久精品国产大片免费观看| 欧美xxxx中国| 麻豆久久久久久久| 国产欧美成人| 国产欧美综合一区二区三区| 亚洲欧美网站在线观看| 在线国产一区二区| av高清不卡| 福利在线免费视频| 欧美a级一区二区| 人人爱人人干婷婷丁香亚洲| 亚洲精品大片| 日本不卡不码高清免费观看| 蜜臀av一区二区在线免费观看 | av最新在线| 国产成人精选| 国产一区二区精品久| 久久91视频| 精品精品久久| 国产一区丝袜|