Guest User

Untitled

a guest
Jan 22nd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. enter code here
  2. import pygame
  3. import random
  4. import sys
  5.  
  6. pygame.init()
  7.  
  8. white = (255,255,255)
  9. black = (0,0,0)
  10. red = (255,0,0)
  11. green = (0,155,0)
  12.  
  13. display_width = 800
  14. display_height = 600
  15.  
  16. gameDisplay = pygame.display.set_mode((display_width,display_height))
  17. pygame.display.set_caption("Snake(alpha edition)")
  18.  
  19. movement = 10
  20. block_size = 10
  21. FPS = 22
  22.  
  23. font = pygame.font.SysFont(None, 25)
  24.  
  25. def snake(block_size, snakelist):
  26. for xny in snakelist:
  27. pygame.draw.rect(gameDisplay, green, [xny[0], xny[1], block_size, block_size])
  28.  
  29.  
  30. def gameover_msg(msg,color):
  31. screen_text = font.render(msg, True, color)
  32. gameDisplay.blit(screen_text, [display_width/2, display_height/2])
  33.  
  34.  
  35. def gameLoop():
  36. gameExit = False
  37. gameOver = False
  38. pos_x = display_width/2
  39. pos_y = display_height/2
  40. pos_x_change = 0
  41. pos_y_change = 0
  42. clock = pygame.time.Clock()
  43. randAppleX = round(random.randrange(0, display_width-block_size)/10.0)*10.0
  44. randAppleY = round(random.randrange(0, display_height-block_size)/10.0)*10.0
  45. snakelist = []
  46. snakelength = 1
  47.  
  48. while not gameExit:
  49.  
  50. while gameOver == True:
  51. gameDisplay.fill(white)
  52. gameover_msg("Game over, press R to play again or Q to quit", red)
  53. pygame.display.update()
  54.  
  55. for event in pygame.event.get():
  56. if event.type == pygame.KEYDOWN:
  57. if event.key == pygame.K_q:
  58. gameExit = True
  59. gameOver = False
  60. if event.key == pygame.K_r:
  61. gameLoop()
  62.  
  63.  
  64.  
  65.  
  66. for event in pygame.event.get():
  67. if event.type == pygame.QUIT:
  68. gameExit = True
  69. if event.type == pygame.KEYDOWN:
  70. if event.key == pygame.K_LEFT:
  71. pos_x_change = -movement
  72. pos_y_change = 0
  73. elif event.key == pygame.K_RIGHT:
  74. pos_x_change = movement
  75. pos_y_change = 0
  76. elif event.key == pygame.K_UP:
  77. pos_y_change = -movement
  78. pos_x_change = 0
  79. elif event.key == pygame.K_DOWN:
  80. pos_y_change = movement
  81. pos_x_change = 0
  82.  
  83. if pos_x >= display_width or pos_x < 0 or pos_y >= display_height or pos_y < 0:
  84. gameOver = True
  85.  
  86.  
  87. if pos_x == randAppleX and pos_y == randAppleY:
  88. randAppleX = round(random.randrange(0, display_width-block_size)/10.0)*10.0
  89. randAppleY = round(random.randrange(0, display_height-block_size)/10.0)*10.0
  90. snakelength += 1
  91.  
  92.  
  93. pos_x += pos_x_change
  94. pos_y += pos_y_change
  95.  
  96. gameDisplay.fill(white)
  97. pygame.draw.rect(gameDisplay, red, [randAppleX, randAppleY, block_size, block_size])
  98.  
  99. snakehead = []
  100. snakehead.append(pos_x)
  101. snakehead.append(pos_y)
  102. snakelist.append(snakehead)
  103.  
  104. if len(snakelist) > snakelength:
  105. del snakelist[0]
  106.  
  107. if snakehead in snakelist[:-1]:
  108. if not snakehead == snakelist[0]:
  109. continue
  110. gameOver = True
  111.  
  112.  
  113. snake(block_size, snakelist)
  114. pygame.display.update()
  115. clock.tick(FPS)
  116.  
  117. pygame.quit()
  118. sys.exit()
  119. quit()
  120.  
  121.  
  122. gameLoop()
Add Comment
Please, Sign In to add comment