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

python實(shí)現(xiàn)貪吃蛇游戲源碼

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

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

import pygame
import sys
import random
 
SCREEN_X=600
SCREEN_Y=600
 
class Snake(object):
 def __init__(self):
 self.direction=pygame.K_RIGHT
 self.body = []
 for i in range(5):
  self.addnode()
 
 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,25,25)
 if self.direction == pygame.K_RIGHT:
  node.left += 25
 elif self.direction == pygame.K_LEFT:
  node.left -= 25
 elif self.direction == pygame.K_UP:
  node.top -= 25
 elif self.direction == pygame.K_DOWN:
  node.top += 25
 self.body.insert(0,node)
 
 def delnode(self):
 self.body.pop()
 
 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:]:
  print('in body')
  return True
 return False
 
 def move(self):
 self.addnode()
 self.delnode()
 
 def changeddirection(self,curkey):
 LR = [pygame.K_LEFT,pygame.K_RIGHT]
 UD = [pygame.K_DOWN,pygame.K_UP]
 if curkey in LR+UD:
  if (curkey in LR) and (self.direction in LR):
  return
  if (curkey in UD) and (self.direction in UD):
  return
  self.direction = curkey
 
class Food(object):
 def __init__(self):
 self.rect = pygame.Rect(-25, 0, 25, 25)
 
 def remove(self):
 self.rect.x = -25
 
 def set(self):
 if self.rect.x == -25:
  allpos = []
  for pos in range(25,SCREEN_X-25,25):
  allpos.append(pos)
  self.rect.left = random.choice(allpos)
  self.rect.top = random.choice(allpos)
  print(self.rect)
 
def show_text(screen,pos,text,color,font_bold = False,font_size = 60,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)
 
def main():
 pygame.init()
 screen_size = (SCREEN_X,SCREEN_Y)
 screen = pygame.display.set_mode(screen_size)
 pygame.display.set_caption('Snake')
 clock=pygame.time.Clock()
 scores=0
 isdead=False
 
 snake=Snake()
 food=Food()
 
 while True:
 for event in pygame.event.get():
 
  if event.type == pygame.QUIT:
  sys.exit()
  if event.type == pygame.KEYDOWN:
  #print(event)
  #pressed_keys = pygame.key.get_pressed()
  #if pressed_keys.count(1)>1:
   # continue
  print(event.key)
  snake.changeddirection(event.key)
  if event.key == pygame.K_SPACE and isdead:
   return main()
 screen.fill((255,255,255))
 if not isdead:
  scores +=1
  snake.move()
 for rect in snake.body:
  pygame.draw.rect(screen,(20,220,39),rect,0)
 isdead=snake.isdead()
 if isdead:
  show_text(screen,(100,200),'you dead!',(227,29,18),False,100)
  show_text(screen,(150,260),'press space to try again...',(0,0,22),False,30)
 
 if food.rect == snake.body[0]:
  scores +=50
  food.remove()
  snake.addnode()
 
 food.set()
 pygame.draw.rect(screen,(136,0,21),food.rect,0)
 show_text(screen,(50,500),'Scores:'+str(scores),(223,223,223))
 pygame.display.update()
 clock.tick(5)
 
if __name__ == "__main__":
 main()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PyTorch 檢查GPU版本是否安裝成功的操作

    PyTorch 檢查GPU版本是否安裝成功的操作

    這篇文章主要介紹了PyTorch 檢查GPU版本是否安裝成功的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 用Python編寫一個(gè)簡(jiǎn)單的俄羅斯方塊游戲的教程

    用Python編寫一個(gè)簡(jiǎn)單的俄羅斯方塊游戲的教程

    這篇文章主要介紹了用Python編寫一個(gè)簡(jiǎn)單的俄羅斯方塊游戲的教程,編寫俄羅斯方塊幾乎是每門編程語(yǔ)言基礎(chǔ)學(xué)習(xí)后的必備實(shí)踐,需要的朋友可以參考下
    2015-04-04
  • Python代碼調(diào)用執(zhí)行shell踩坑解決

    Python代碼調(diào)用執(zhí)行shell踩坑解決

    這篇文章主要為大家介紹了Python代碼調(diào)用執(zhí)行shell,踩過(guò)的坑解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • pycharm修改主題顏色和注釋顏色的詳細(xì)圖文教程

    pycharm修改主題顏色和注釋顏色的詳細(xì)圖文教程

    PyCharm是一款強(qiáng)大的Python編輯器,相信很多人都已經(jīng)用上了它,這篇文章主要給大家介紹了關(guān)于pycharm修改主題顏色和注釋顏色的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • python實(shí)現(xiàn)數(shù)獨(dú)游戲 java簡(jiǎn)單實(shí)現(xiàn)數(shù)獨(dú)游戲

    python實(shí)現(xiàn)數(shù)獨(dú)游戲 java簡(jiǎn)單實(shí)現(xiàn)數(shù)獨(dú)游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)數(shù)獨(dú)游戲和java實(shí)現(xiàn)數(shù)獨(dú)游戲的相關(guān)代碼,比較兩種語(yǔ)言實(shí)現(xiàn)數(shù)獨(dú)游戲的區(qū)別
    2018-03-03
  • 解密Python中的描述符(descriptor)

    解密Python中的描述符(descriptor)

    這篇文章主要介紹了解密Python中的描述符(descriptor),本文詳細(xì)講解了描述符(descriptor)的作用、訪問(wèn)描述符、對(duì)描述符賦值、刪除描述符等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • Python threading多線程編程實(shí)例

    Python threading多線程編程實(shí)例

    這篇文章主要介紹了Python threading多線程編程實(shí)例,本文講解了使用函數(shù)和線程類實(shí)現(xiàn)多線程編程的例子,需要的朋友可以參考下
    2014-09-09
  • Python UI自動(dòng)化測(cè)試Web frame及多窗口切換

    Python UI自動(dòng)化測(cè)試Web frame及多窗口切換

    這篇文章主要為大家介紹了Python UI自動(dòng)化測(cè)試Web frame及多窗口切換,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • TensorFlow打印tensor值的實(shí)現(xiàn)方法

    TensorFlow打印tensor值的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇TensorFlow打印tensor值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python變量的作用域使用

    Python變量的作用域使用

    這篇文章主要介紹了Python變量的作用域使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評(píng)論