Python怎么實(shí)現(xiàn)貪吃蛇游戲

本篇內(nèi)容介紹了“Python怎么實(shí)現(xiàn)貪吃蛇游戲”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

游戲動(dòng)圖:

Python怎么實(shí)現(xiàn)貪吃蛇游戲

源碼

from turtle import *
from random import randrange
from freegames import square, vector

food = vector(0, 0)
snake = [vector(10, 0)]
aim = vector(0, -10)

def change(x, y):
   "Change snake direction."
   aim.x = x
   aim.y = y

def inside(head):
   "Return True if head inside boundaries."
   return -200 < head.x < 190 and -200 < head.y < 190

def move():
   "Move snake forward one segment."
   head = snake[-1].copy()
   head.move(aim)

   if not inside(head) or head in snake:
       square(head.x, head.y, 9, 'red')
       update()
       return

   snake.append(head)

   if head == food:
       print('Snake:', len(snake))
       food.x = randrange(-15, 15) * 10
       food.y = randrange(-15, 15) * 10
   else:
       snake.pop(0)

   clear()

   for body in snake:
       square(body.x, body.y, 9, 'black')

   square(food.x, food.y, 9, 'green')
   update()
   ontimer(move, 100)

setup(420, 420, 370, 0)
hideturtle()
tracer(False)
listen()
onkey(lambda: change(10, 0), 'Right')
onkey(lambda: change(-10, 0), 'Left')
onkey(lambda: change(0, 10), 'Up')
onkey(lambda: change(0, -10), 'Down')
move()
done()
     

運(yùn)行

復(fù)制上述代碼到一個(gè) py 為后綴的文件,命名 snake.py.

在文件所在目錄打開控制臺(tái):運(yùn)行pip install freegames,然后運(yùn)行python snake.py

“Python怎么實(shí)現(xiàn)貪吃蛇游戲”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文名稱:Python怎么實(shí)現(xiàn)貪吃蛇游戲
網(wǎng)頁(yè)URL:http://muchs.cn/article22/jejscc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)公司、商城網(wǎng)站、品牌網(wǎng)站制作、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司