Advertisement
AHDog

snake

Apr 30th, 2022
1,018
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.64 KB | None | 0 0
  1. import pygame
  2. import time
  3. import random
  4.  
  5. pygame.init()
  6.  
  7. #defining colors
  8. white = (255, 255, 255) #assumption that this is used with 3 paramaters to define the color
  9. black = (0, 0, 0)
  10. red = (255, 0, 0)
  11. orange = (255, 165, 0)
  12. #dimensions
  13. width, height = 600, 400
  14.  
  15. game_display = pygame.display.set_mode((width, height)) #the game window with paramaters that are the dimenions, x, y
  16. pygame.display.set_caption('Beginner Snake Game')
  17.  
  18. clock = pygame.time.Clock()
  19.  
  20. snake_size = 10
  21. snake_speed = 15
  22.  
  23. message_font = pygame.font.SysFont("Monospace", 10)
  24. score_font = pygame.font.SysFont("Monospace", 10)
  25.  
  26. def print_score(score):
  27.     text = score_font.render("score: " + str(score), True, orange)
  28.     game_display.blit(text, [0, 0])
  29.  
  30. def draw_snake(snake_size, snake_pixels):
  31.     for pixel in snake_pixels:
  32.         pygame.draw.rect(game_display, white, [pixel[0], pixel[1], snake_size, snake_size])
  33.  
  34. def run_game():
  35.     game_over = False
  36.     game_close = False
  37.  
  38.     x = width/2
  39.     y = height/2
  40.  
  41.     x_speed = 0
  42.     y_speed = 0
  43.  
  44.     snake_pixels = []
  45.     snake_length = 1
  46.  
  47.     target_x = round(random.randrange(0, width-snake_size) / 10.0) * 10.0
  48.     target_y = round(random.randrange(0, height-snake_size) / 10.0) * 10.0
  49.  
  50.     while not game_over:
  51.  
  52.         while game_close:
  53.             game_display.fill(black)
  54.             game_over_message = message_font.render("Game Over!", True, red)
  55.             game_display.blit(game_over_message, [width / 3, height /3])
  56.             print_score(snake_length -1)
  57.             pygame.display.update()
  58.  
  59.             for event in pygame.event.get():
  60.                 if event.type == pygame.KEYDOWN:
  61.                     if event.key == pygame.K_1:
  62.                         game_over = True
  63.                         game_close = False
  64.                     if event.key == pygame.K_2:
  65.                         run_game()
  66.                 if event.type == pygame.QUIT:
  67.                     game_over = True
  68.                     game_close = False
  69.  
  70.  
  71.         for event in pygame.event.get():
  72.             if event.type == pygame.QUIT:
  73.                 game_over = True
  74.             if event.type == pygame.KEYDOWN:
  75.                 if event.key == pygame.K_LEFT:
  76.                     x_speed = -snake_size
  77.                     y_speed = 0
  78.                 if event.key == pygame.K_RIGHT:
  79.                      x_speed = snake_size
  80.                      y_speed = 0
  81.                 if event.key == pygame.K_UP:
  82.                     x_speed = 0
  83.                     y_speed = -snake_size
  84.                 if event.key == pygame.K_DOWN:
  85.                     x_speed = 0
  86.                     y_speed = snake_size
  87.  
  88.         if x >= width or x < 0 or y >= height or y < 0:
  89.             game_close = True
  90.  
  91.         x +- x_speed#this has to be on the same horotizontal(code line) / x coordinate
  92.         y +- y_speed
  93.  
  94.         game_display.fill(black)
  95.         pygame.draw.rect(game_display, orange, [target_x, target_y, snake_size, snake_size])
  96.  
  97.         snake_pixels.append([x, y])
  98.  
  99.         if len(snake_pixels) > snake_length:
  100.             del snake_pixels[0]
  101.         for pixel in snake_pixels[:-1]:
  102.             if pixel == [x, y]:
  103.                 game_close = True
  104.        
  105.         draw_snake(snake_size, snake_pixels)
  106.         print_score(snake_length - 1)
  107.  
  108.         pygame.display.update()
  109.        
  110.         if x == target_x and y == target_y:
  111.             target_x = round(random.randrange(0, width-snake_size) / 10.0) * 10.0
  112.             target_y = round(random.randrange(0, width-snake_size) / 10.0) * 10.0
  113.             snake_length += 1
  114.  
  115.         clock.tick(snake_speed)
  116.  
  117.  
  118.  
  119.     pygame.quit()
  120.     quit()
  121.  
  122. run_game()
  123.  
  124.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement