資源簡介
貪吃蛇經典小游戲pygame實現,非常簡單簡陋,可以作為pygame的練手
代碼片段和文件信息
import?numpy?sys?random?pygame
from?pygame.locals?import?*
HEIGHT?=?400
WIDTH?=?400
S_F_SIZE?=?10???????????#?食物和蛇一格的大小
SCREEN_SIZE?=?(HEIGHT?WIDTH)?#?屏幕尺寸
MOVE_PS?=?15???????????#?每秒刷新次數,模擬fps
DIR?=?0?????????????????#?蛇移動的方向,0123分別為上右下左
FOOD?=?[0?0]???????????#?食物位置
SNAKE?=?[]??????????????#?蛇
#?屏幕設置,第一個參數分辨率,第二個參數模式(不需要全屏則置0若需要全屏則為FULLSCREEN),第三個參數色深
SCREEN?=?pygame.display.set_mode(SCREEN_SIZE?0?32)
SCORE?=?0
def?run():
????global?DIR
????global?SCREEN
????global?SCORE
????for?event?in?pygame.event.get():
????????#?退出
????????if?event.type?==?pygame.QUIT:
????????????pygame.quit()
????????????sys.exit(0)
????????#?按鍵
????????elif?event.type?==?pygame.KEYDOWN:
????????????if?(event.key?==?K_ESCAPE):??#?終止程序
????????????????pygame.quit()
????????????????sys.exit(0)
????????????#?上下左右改變方向不能去反方向
????????????elif?(event.key?==?K_LEFT?and?DIR?!=?1):
????????????????DIR?=?3
????????????elif?(event.key?==?K_RIGHT?and?DIR?!=?3):
????????????????DIR?=?1
????????????elif?(event.key?==?K_UP?and?DIR?!=?2):
????????????????DIR?=?0
????????????elif?(event.key?==?K_DOWN?and?DIR?!=?0):
????????????????DIR?=?2
????#?蛇頭接下來的位置
????if?(DIR?==?0):
????????next_head?=?[SNAKE[0][0]?SNAKE[0][1]-1]
????elif?(DIR?==?1):
????????next_head?=?[SNAKE[0][0]+1?SNAKE[0][1]]
????elif?(DIR?==?2):
????????next_head?=?[SNAKE[0][0]?SNAKE[0][1]+1]
????elif?(DIR?==?3):
????????next_head?=?[SNAKE[0][0]-1?SNAKE[0][1]]
????#?判斷蛇是否會死
????if?(next_head[0]?>=?WIDTH/S_F_SIZE?or?next_head[0]?0?or?next_head[1]?>?HEIGHT/S_F_SIZE?or?next_head[1]?0)?or?((next_head?in?SNAKE)?and?(next_head?!=?SNAKE[-1])):
????????return?5
????#?更新蛇的位置和形態
????SNAKE.insert(
- 上一篇:Python文件
- 下一篇:銀行ATM系統(Python實現)
評論
共有 條評論