欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)貪吃蛇游戲

 更新時間:2020年03月21日 14:06:25   作者:xqn2017  
這篇文章主要為大家詳細介紹了python實現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)貪吃蛇游戲的具體代碼,供大家參考,具體內(nèi)容如下

本文稍作改動,修復(fù)一些bug,原文鏈接:python實現(xiàn)貪吃蛇游戲

#!/usr/bin/env python
#__*__ coding: utf-8 __*__
 
import pygame,sys,time,random
from pygame.locals import *
 
 
redColour = pygame.Color(255,0,0)
blackColour = pygame.Color(0,0,0)
whiteColour = pygame.Color(255,255,255)
greyColour = pygame.Color(150,150,150)
 
def gameOver(playSurface):
 gameOverFont = pygame.font.Font('arial.ttf',72)
 gameOverSurf = gameOverFont.render('Game Over',True,greyColour)
 gameOverRect = gameOverSurf.get_rect()
 gameOverRect.midtop = (320,10)
 playSurface.blit(gameOverSurf,gameOverRect)
 pygame.display.flip()
 time.sleep(5)
 pygame.quit()
 sys.exit()
 
def main():
 pygame.init()
 playSurface = pygame.display.set_mode((640,480))
 fpsClock = pygame.time.Clock()
 pygame.display.set_caption('Snake Liu')
 
 snakePosition = [100,100]
 snakeSegments = [[100,100],[80,100],[60,100]]
 raspberryPosition = [300,300]
 raspberrySpawned = 1
 direction = 'right'
 changeDirection = direction
 while True:
 for event in pygame.event.get():
 if event.type == QUIT:
 sys.exit()
 elif event.type == KEYDOWN:
 if event.key == K_RIGHT or event.key == ord('d'):
  changeDirection = 'right'
 if event.key == K_LEFT or event.key == ord('a'):
  changeDirection = 'left'
 if event.key == K_UP or event.key == ord('w'):
  changeDirection = 'up'
 if event.key == K_DOWN or event.key == ord('s'):
  changeDirection = 'down'
 if event.key == K_ESCAPE:
  pygame.event.post(pygame.event.Event(QUIT))
 # 判斷是否輸入了反方向,與原文有改動
 if changeDirection == 'right':
 direction = changeDirection
 if changeDirection == 'left':
 direction = changeDirection
 if changeDirection == 'up':
 direction = changeDirection
 if changeDirection == 'down':
 direction = changeDirection
 # 根據(jù)方向移動蛇頭的坐標
 if direction == 'right':
 snakePosition[0] += 20
 if direction == 'left':
 snakePosition[0] -= 20
 if direction == 'up':
 snakePosition[1] -= 20
 if direction == 'down':
 snakePosition[1] += 20
 # 增加蛇的長度
 snakeSegments.insert(0,list(snakePosition))
 # 判斷是否吃掉了樹莓
 if snakePosition[0] == raspberryPosition[0] and snakePosition[1] == raspberryPosition[1]:
 raspberrySpawned = 0
 else:
 snakeSegments.pop()
 # 如果吃掉樹莓,則重新生成樹莓
 if raspberrySpawned == 0:
 x = random.randrange(1,32)
 y = random.randrange(1,24)
 raspberryPosition = [int(x*20),int(y*20)]
 raspberrySpawned = 1
 
 # 刷新pygame顯示層
 playSurface.fill(blackColour)
 for position in snakeSegments:
 pygame.draw.rect(playSurface,whiteColour,Rect(position[0],position[1],20,20))
 pygame.draw.rect(playSurface,redColour,Rect(raspberryPosition[0], raspberryPosition[1],20,20))
 pygame.display.flip()
 
 # 判斷是否死亡,后面幾行和原文有改動
 if snakePosition[0] > 620 or snakePosition[0] < 0:
 gameOver(playSurface)
 if snakePosition[1] > 460 or snakePosition[1] < 0:
 gameOver(playSurface)
 for snakeBody in snakeSegments[1:]:
 if snakePosition[0] == snakeBody[0] and snakePosition[1] == snakeBody[1]:
 gameOver(playSurface)
 fpsClock.tick(5)
if __name__ == "__main__":
 main()

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python+selenium 獲取瀏覽器窗口坐標、句柄的方法

    Python+selenium 獲取瀏覽器窗口坐標、句柄的方法

    今天小編就為大家分享一篇Python+selenium 獲取瀏覽器窗口坐標、句柄的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python控制臺打印log輸出重復(fù)的解決方法

    python控制臺打印log輸出重復(fù)的解決方法

    在學習了python的函數(shù)式編程后,又接觸到了logging這樣一個強大的日志模塊。這篇文章主要給大家介紹了關(guān)于python控制臺打印log輸出重復(fù)的解決方法,需要的朋友可以參考下
    2021-05-05
  • python實現(xiàn)三子棋游戲

    python實現(xiàn)三子棋游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • python獲取本機所有IP地址的方法

    python獲取本機所有IP地址的方法

    這篇文章主要為大家詳細介紹了python獲取本機所有IP地址的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python使用pymysql小技巧

    Python使用pymysql小技巧

    pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。
    2017-06-06
  • 淺談Pycharm最有必要改的幾個默認設(shè)置項

    淺談Pycharm最有必要改的幾個默認設(shè)置項

    今天小編就為大家分享一篇淺談Pycharm最有必要改的幾個默認設(shè)置項,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python實現(xiàn)kNN算法

    python實現(xiàn)kNN算法

    這篇文章主要為大家詳細介紹了python實現(xiàn)kNN算法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 基于Python實現(xiàn)本地音樂播放器的制作

    基于Python實現(xiàn)本地音樂播放器的制作

    這篇文章主要介紹了如何利用Python實現(xiàn)本地音樂播放器的制作,并且可以選擇需要播放的音樂的路徑,選擇播放方式,感興趣的小伙伴可以了解一下
    2022-06-06
  • Python wxPython庫消息對話框MessageDialog用法示例

    Python wxPython庫消息對話框MessageDialog用法示例

    這篇文章主要介紹了Python wxPython庫消息對話框MessageDialog用法,結(jié)合實例形式簡單分析了wxPython庫的基本事件與相關(guān)使用技巧,需要的朋友可以參考下
    2018-09-09
  • python?Pandas庫read_excel()參數(shù)實例詳解

    python?Pandas庫read_excel()參數(shù)實例詳解

    人們經(jīng)常用pandas處理表格型數(shù)據(jù),時常需要讀入excel表格數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python?Pandas庫read_excel()參數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07

最新評論