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

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

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

瀏覽:179日期: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久久,三上悠亚国产精品一区二区三区
国产精选一区| 少妇久久久久| 日韩中文字幕不卡| 首页欧美精品中文字幕| 日韩精品一二区| 日本一不卡视频| 国产精品一在线观看| 久久精品国产网站| 精品三级在线观看视频| 高清不卡亚洲| 成人av二区| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 每日更新成人在线视频| 一区二区三区网站| 国产精品sss在线观看av| 欧美aa在线观看| 免费在线看一区| 国产毛片精品| 精精国产xxxx视频在线播放| 好吊日精品视频| 亚洲精品动态| 乱一区二区av| 欧美高清不卡| 深夜日韩欧美| 麻豆一区二区三区| 免费观看久久av| 日韩精品免费视频一区二区三区| 精品久久久中文字幕| 亚洲欧美日韩视频二区| 国产精品毛片久久久| 亚洲福利久久| 国产精品久久久免费| 亚洲国产不卡| 久久麻豆视频| 日韩中文字幕麻豆| 日韩免费在线| 久久国产生活片100| 国产一区欧美| 国产精品一区高清| 欧美日韩黑人| 麻豆精品在线观看| 欧美资源在线| 国产精品久久观看| 亚洲ab电影| 在线国产一区二区| 丁香婷婷久久| 日韩精品福利一区二区三区| 99视频精品全部免费在线视频| 91亚洲精品视频在线观看| 久久国产中文字幕| 欧美国产日本| 亚洲精品国产精品粉嫩| 国产在线欧美| 欧美a在线观看| 久久国产精品久久w女人spa| 91精品蜜臀一区二区三区在线 | 中文字幕成在线观看| 日本成人在线不卡视频| 亚洲午夜在线| 国产理论在线| 国产精品色在线网站| 视频在线观看一区二区三区| 日韩伦理一区| 美女在线视频一区| 亚洲网址在线观看| 婷婷成人基地| 日韩av首页| 色欧美自拍视频| 国产精品啊v在线| 日韩一区二区三区免费视频| 国产精品日韩| 蜜臀91精品国产高清在线观看| 97精品97| 精品无人区麻豆乱码久久久| 欧美视频久久| 日韩精选在线| 亚洲区国产区| 蜜臀久久99精品久久久久宅男 | 麻豆一区二区三| 亚州欧美在线| 日韩三级精品| 天海翼精品一区二区三区| 亚洲精品一区二区在线看| 91精品xxx在线观看| 麻豆网站免费在线观看| 捆绑调教美女网站视频一区| 国产乱子精品一区二区在线观看| 亚洲免费专区| 日本成人中文字幕| 爽好多水快深点欧美视频| 久久xxxx| 免费看欧美美女黄的网站| 日韩精品一二三| 亚洲精品乱码久久久久久蜜桃麻豆| 在线免费观看亚洲| 亚洲我射av| 日韩二区三区在线观看| 欧美日本三区| 欧美激情三区| 成人亚洲精品| 日韩在线短视频| 亚洲成人av观看| 亚洲一级高清| 日韩在线一区二区| 亚洲1区在线| 国产调教精品| 精品久久久久中文字幕小说| 国产精品成人一区二区不卡| 亚洲性色av| 在线一区免费观看| 日韩三区四区| 精品一区二区三区免费看| 欧美sm一区| 黄色国产精品| 香蕉久久一区| 精品视频在线观看网站| 色黄视频在线观看| 在线成人直播| 日韩av一区二区在线影视| 国产精品密蕾丝视频下载| 国产一区日韩| 自拍日韩欧美| 欧美在线精品一区| 91日韩欧美| 在线视频免费在线观看一区二区| 日韩精品免费观看视频| 国产精品久久久久蜜臀| 午夜欧美在线| 久久国内精品自在自线400部| 亚洲精品**中文毛片| 热久久国产精品| 精品国产a一区二区三区v免费| 欧美福利在线| 国产精品久久久网站| 午夜精品久久久久久久久久蜜桃| 狠狠久久婷婷| 国产精品久久国产愉拍| 亚洲成人二区| 国产亚洲字幕| 91精品推荐| 国产色噜噜噜91在线精品| 三级小说欧洲区亚洲区| 亚洲三级毛片| 黄在线观看免费网站ktv| 一区二区电影在线观看| 国产一区三区在线播放| 亚洲一区欧美二区| 麻豆精品久久| 视频在线观看国产精品| 国产一区二区视频在线看| 免费国产自线拍一欧美视频| 久久69成人| 亚洲精品三级| 久久中文字幕av| 欧美激情亚洲| 亚洲资源网站| 久久亚洲在线| 你懂的国产精品| 一区二区精彩视频| 国产99亚洲| 欧美国产先锋| 一区二区国产在线| 精品欧美激情在线观看| 久久影院一区二区三区| 免费在线视频一区| 电影亚洲精品噜噜在线观看 | 亚洲精品日本| 婷婷亚洲五月| 国产精品福利在线观看播放| 日韩av电影一区| 99日韩精品| 成人精品中文字幕| 精品三级在线观看视频| 欧美一区二区三区免费看| 99riav国产精品| 99视频精品全国免费| 日本一区二区高清不卡| 午夜精品福利影院| 91久久中文| 亚洲四虎影院| 波多视频一区| 精品国产鲁一鲁****| 国产日产一区| 综合一区二区三区| 国精品一区二区| 高清不卡亚洲| 麻豆网站免费在线观看| 成人在线超碰| 久久精品国产福利| 麻豆久久久久久久| 国产精选一区| 青青草国产精品亚洲专区无| 国产精品日本| 一本一本久久| 免费在线观看成人| 爽爽淫人综合网网站| 久久国产高清| 亚洲毛片视频| 日本在线成人| 日本特黄久久久高潮|