python贪吃蛇代码
生活随笔
收集整理的這篇文章主要介紹了
python贪吃蛇代码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
語言:python
外置組建:pygame
python是一款十分簡單的語言,功能也十分巨大它也能實(shí)現(xiàn)貪吃蛇。
游戲過程:
廢話不多說我們來看代碼 :
#0.imort xxxx import pygame# pygame游戲庫,sys操控python運(yùn)行的環(huán)境 import pygame, sys, random # 這個(gè)模塊包含所有pygame所使用的常亮 from pygame.locals import *# 1,定義顏色變量 # 0-255 0黑色 255白色 redColor = pygame.Color(255, 0, 0) # 背景為黑色 blackColor = pygame.Color(0, 0, 0) # 貪吃蛇為白色 whiteColor = pygame.Color(255, 255, 255)# 定義游戲結(jié)束的函數(shù) def gameover():pygame.quit()sys.exit()# 定義main函數(shù)--》定義我們的入口函數(shù) def main():# 初始化pygamepygame.init()# 定義一個(gè)變量來控制速度fpsClock = pygame.time.Clock()# 創(chuàng)建pygame顯示層,創(chuàng)建一個(gè)界面playsurface = pygame.display.set_mode((640, 480))pygame.display.set_caption('貪吃蛇')# 初始化變量# 貪吃蛇初始坐標(biāo)位置 (先以100,100為基準(zhǔn))snakePosition = [100, 100]# 初始化貪吃蛇的長度列表中有個(gè)元素就代表有幾段身體snakeBody = [[100, 100], [80, 100], [60, 100]]# 初始化目標(biāo)方向額位置targetPosition = [300, 300]# 目標(biāo)方塊的標(biāo)記 目的:判斷是否吃掉了這個(gè)目標(biāo)方塊1 就是沒有吃 0就是吃掉targetflag = 1# 初始化方向 --》往右direction = 'right'# 定義一個(gè)方向變量(人為控制 按鍵)changeDirection = directionwhile True:for event in pygame.event.get(): # 從隊(duì)列中獲取事件if event.type == QUIT:pygame.quit()sys.exit()elif event.type == KEYDOWN:if event.key == K_d:changeDirection = 'right'if event.key == K_a:changeDirection = 'left'if event.key == K_w:changeDirection = 'up'if event.key == K_s:changeDirection = 'down'# 對(duì)應(yīng)鍵盤上的esc文件if event.key == K_ESCAPE:pygame.event.post(pygame.event.Event(QUIT))# 確定方向if changeDirection == 'left' and not direction == 'right':direction = changeDirectionif changeDirection == 'right' and not direction == 'left':direction = changeDirectionif changeDirection == 'up' and not direction == 'down':direction = changeDirectionif changeDirection == 'down' and not direction == 'up':direction = changeDirection# 根據(jù)方向移動(dòng)蛇頭if direction == 'right':snakePosition[0] += 20if direction == 'left':snakePosition[0] -= 20if direction == 'up':snakePosition[1] -= 20if direction == 'down':snakePosition[1] += 20# 增加蛇的長度snakeBody.insert(0, list(snakePosition))# 如果貪吃蛇和目標(biāo)方塊的位置重合if snakePosition[0] == targetPosition[0] and snakePosition[1] == targetPosition[1]:targetflag = 0else:snakeBody.pop()if targetflag == 0:x = random.randrange(1, 32)y = random.randrange(1, 24)targetPosition = [int(x * 20), int(y * 20)]targetflag = 1# 填充背景顏色playsurface.fill(blackColor)for position in snakeBody:# 第一個(gè)參數(shù)serface指定一個(gè)serface編輯區(qū),在這個(gè)區(qū)域內(nèi)繪制# 第二個(gè)參數(shù)color:顏色# 第三個(gè)參數(shù):rect:返回一個(gè)矩形(xy),(width,height)# 第四個(gè)參數(shù):width:表示線條的粗細(xì) width0填充 實(shí)心# 化蛇pygame.draw.rect(playsurface, redColor, Rect(position[0], position[1], 20, 20))pygame.draw.rect(playsurface, whiteColor, Rect(targetPosition[0], targetPosition[1], 20, 20))# 更新顯示到屏幕表面pygame.display.flip()# 判斷是否游戲結(jié)束if snakePosition[0] > 620 or snakePosition[0] < 0:gameover()elif snakePosition[1] > 460 or snakePosition[1] < 0:gameover()# 控制游戲速度fpsClock.tick(2)# 啟動(dòng)入口函數(shù) if __name__ == '__main__':main()這個(gè)比我之前發(fā)的“java版貪吃蛇”要簡單的多!? ?
總結(jié)
以上是生活随笔為你收集整理的python贪吃蛇代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FGSM对抗样本trick汇总
- 下一篇: 485通讯的校验和_三菱FX3U与变频器