貪吃蛇作為一款經典小遊戲,早在 1976 年就面世了,我最早接觸它還是在家長的諾基亞手機中。
儘管貪吃蛇的歷史相對比較久遠,但它卻有著十分頑強的生命力,保持經久不衰,其中很重要的原因便是遊戲廠家不斷的對其進行更新迭代。現在,這款遊戲無論是遊戲場景、規則等都變得十分豐富。
接下來,我們看一下如何通過 python 簡單的實現這款小遊戲。
首先,安裝第三方庫 pygame,使用pip install pygame
即可。
➢ 遊戲主介面
screen_x = 500➢ 貪吃蛇screen_y = 500
screen_size = (screen_x, screen_y)
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption('貪吃蛇')
初始化
def __init__(self):移動self.dirction = pygame.k_right
self.body =
def addnode(self):改變方向left, top = (0, 0)
if self.body:
left, top = (self.body[0].left, self.body[0].top)
node = pygame.rect(left, top, 20, 20)
if self.dirction == pygame.k_left:
node.left -= 20
elif self.dirction == pygame.k_right:
node.left += 20
elif self.dirction == pygame.k_up:
node.top -= 20
elif self.dirction == pygame.k_down:
node.top += 20
self.body.insert(0, node)
def delnode(self):
self.body.pop()
def changedirection(self, curkey):死亡判斷lr = [pygame.k_left, pygame.k_right]
ud = [pygame.k_up, pygame.k_down]
if curkey in lr + ud:
if (curkey in lr) and (self.dirction in lr):
return
if (curkey in ud) and (self.dirction in ud):
return
self.dirction = curkey
def isdead(self):➢ 食物# 撞牆
if self.body[0].x not in range(screen_x):
return true
if self.body[0].y not in range(screen_y):
return true
# 撞自己
if self.body[0] in self.body[1:]:
return true
return false
投放食物
def set(self):吃掉食物if self.rect.x == -20:
allpos =
for pos in range(20, screen_x - 20, 20):
self.rect.left = random.choice(allpos)
self.rect.top = random.choice(allpos)
print(self.rect)
def remove(self):➢ 文字顯示self.rect.x = -20
顯示方法
def show_text(screen, pos, text, color, font_bold=false, font_size=30, font_italic=false):顯示分數# 設定文字大小
cur_font = pygame.font.sysfont("宋體", font_size)
# 加粗
cur_font.set_bold(font_bold)
# 斜體
cur_font.set_italic(font_italic)
# 設定內容
text_fmt = cur_font.render(text, 1, color)
# 繪製文字
screen.blit(text_fmt, pos)
show_text(screen, (50, 400), 'scores: ' + str(scores), (103, 213, 213))顯示死亡提示
show_text(screen, (150, 50), 'game over', (227, 29, 18), false, 50)➢ 吃到食物show_text(screen, (140, 100), "press space to try again", (0, 0, 22), false, 30)
當貪吃蛇吃掉食物,增加蛇身長度、分數,食物消失,重新投放食物。
if food.rect == snake.body[0]:➢ 最終效果scores += 1
food.remove()
snake.addnode()
# 投放食物
food.set()
打包使用 pyinstaller,具體實現參考 用python實現童年小遊戲俄羅斯方塊
中的打包。
用python實現猜數小遊戲(介面)
簡潔易上手 話不多說,直接上 import tkinter as tk import tkinter.messagebox import random import re game tk.tk game.geometry 400x200 game.title 猜數字小遊戲 a random.rand...
用js實現2048小遊戲
筆記倉庫 2048是一款休閒益智類的數字疊加小遊戲。文末給出源 和演示位址 在 4 4 的16宮格中,您可以選擇上 下 左 右四個方向進行操作,數字會按方向移動,相鄰的兩個數字相同就會合併,組成更大的數字,每次移動或合併後會自動增加乙個數字。當16宮格中沒有空格子,且四個方向都無法操作時,遊戲結束。...
用html css js實現2048小遊戲
最近在學習h5的相關知識,為了檢驗下學習效果,嘗試著對小遊戲2048進行了實現,本來還覺得學的已經不錯了,但是真是做的時候真是應了那句話 書到用時方恨少,絕知此事要躬行!為了測試下對基礎知識的掌握程度,沒有使用現成的框架,如jquery等,這個小遊戲只用了基礎的html css和js。實現該遊戲的思...