Python 貪吃蛇遊戲

2021-08-18 21:05:24 字數 1630 閱讀 3687

# -*- coding: utf-8 -*-

#引入turtle庫,製作snake,food的動畫

from turtle import *

#引入random庫,使food隨機出現

from random import randrange

#引入freegames庫,這個庫中封裝了許多元素;我們可以使用正方形元素表示food,snake,用vector這個二維向量表示snake的移動

from freegames import square, vector

#初始化food,snake

food = vector(0, 0)

snake = [vector(10, 0)]

#vector(0,10)表示第乙個food的位置在以snake的頭為原點,橫座標為0,縱座標為-10處

aim = vector(0, -10)

#改變方向

def change(x, y):

aim.x = x

aim.y = y

#判斷snake有沒有碰到牆壁

def inside(head):

return -200 < head.x < 190 and -200 < head.y < 190

def move():

head = snake[-1].copy()

head.move(aim)

#考慮遊戲結束的兩種情況,head碰到牆壁/頭碰到身體

if not inside(head) or head in snake:

square(head.x, head.y, 9, 'red')

update()

return

#snake吃到food,下乙個food會隨機出現在畫布的另乙個地方

if head == food:

print('snake:', len(snake))

food.x = randrange(-15, 15) * 10

food.y = randrange(-15, 15) * 10

# snake沒有吃到food,snake列表pop(0)

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()

Python 遊戲 貪吃蛇

貪吃蛇是個非常簡單的遊戲,適合練手。先來看一下我的遊戲截圖 玩法介紹 回車鍵 開始遊戲 空格鍵 暫停 繼續 方向鍵 或 wsad 鍵 控制移動方向。食物分紅 綠 藍三種,分別對應 10 分 20 分 30 分,每吃乙個食物增加對應分值,每增加 100 分速度加快一級,沒有設定關卡,我玩到 1100 ...

貪吃蛇遊戲

貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...

貪吃蛇遊戲

include include include include include 使用當前時間做種子 enum dir 列舉型別enum dir 圍牆 class fencef 定義物件 畫框框 void fence initfence 顯示框框 void fence outputf int snak...