python最简单的贪吃蛇游戏

游戏 游戏 1398 人阅读 | 0 人回复

<
  1. import pygame, sys, random, time
  2. from pygame.locals import *                    
  3. pygame.init()                                 
  4. Clock = pygame.time.Clock()
  5. screen = pygame.display.set_mode((1200, 900))
  6. pygame.display.set_caption(&#39;贪吃蛇游戏&#39;)
  7. direct = &#39;right&#39; ; GameOver = False                          
  8. food = [10, 4] ; head = [4, 4] ; snake= [ [4, 4], [3, 4], [2, 4]]                        
  9. font = pygame.font.SysFont("MicrosoftYaHei", 200).render(&#39;游戏完毕&#39;, True, (10, 255, 10))
  10. while True:
  11.     Clock.tick(10)                           
  12.     screen.fill((28, 56, 20))
  13.     for event in pygame.event.get():
  14.         if event.type == QUIT:
  15.             pygame.quit()
  16.             sys.exit()
  17.         elif event.type == KEYDOWN:
  18.             if event.key == K_UP or event.key == K_w:
  19.                 if direct != &#39;bottom&#39;:  direct = &#39;top&#39;
  20.             if event.key == K_DOWN or event.key == K_s:
  21.                 if direct != &#39;top&#39; :    direct = &#39;bottom&#39;
  22.             if event.key == K_LEFT or event.key == K_a:
  23.                 if direct != &#39;right&#39; :  direct = &#39;left&#39;
  24.             if event.key == K_RIGHT or event.key == K_d:
  25.                 if direct != &#39;left&#39;:    direct = &#39;right&#39;
  26.     if direct == &#39;left&#39;:   head[0] -= 1
  27.     if direct == &#39;right&#39;:  head[0] += 1
  28.     if direct == &#39;top&#39;:    head[1] -= 1
  29.     if direct == &#39;bottom&#39;: head[1] += 1
  30.     if head[0] < 0 or head[0] > 40 or head[1] < 0 or head[1] > 30:
  31.         GameOver = True     
  32.     if head in snake[1:]:        GameOver = True
  33.     if GameOver:
  34.         screen.blit(font, (200,300))
  35.         pygame.display.flip()
  36.         time.sleep(2)
  37.         pygame.quit()
  38.         sys.exit()         
  39.     snake.insert(0, list(head))
  40.     if head == food:
  41.         while True:
  42.             food = [int(random.randrange(1,39)), int(random.randrange(1,29))]
  43.             if food not in snake:
  44.                 break
  45.     else:
  46.         snake.pop()
  47.     pygame.draw.rect(screen, (255,34 , 20), Rect(food[0]*30, food[1]*30, 30, 30))
  48.     for body in snake:
  49.         pygame.draw.rect(screen, (255, 144, 20), Rect(body[0]*30, body[1]*30, 29, 29))
  50.     pygame.display.flip()
复造代码


免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则