Guest User

Untitled

a guest
Sep 29th, 2020
43
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import pygame
  2. import numpy as np
  3.  
  4. def main_loop():
  5.     BLACK = (0, 0, 0)
  6.     WHITE = (200, 200, 200)
  7.     GREEN = (141, 182, 0)
  8.     RED = (255, 0, 0)
  9.     WIDTH = 20
  10.     HEIGHT = 20
  11.     SIZE = 11
  12.    
  13.     MARGIN = 5
  14.    
  15.     grid = []
  16.     snake_tails = []
  17.  
  18.     for row in range(SIZE+1):
  19.  
  20.         grid.append([])
  21.         for column in range(SIZE+1):
  22.             grid[row].append(0)
  23.  
  24.  
  25.     coord = (5, 6)
  26.  
  27.     for i in range(3):
  28.         snake_tails.append([coord[0], coord[1] + i])
  29.         grid[coord[0]][coord[1] + i] = 1
  30.     # print(snake_tails)
  31.     pygame.init()
  32.    
  33.  
  34.     WINDOW_SIZE = [280, 280]
  35.     screen = pygame.display.set_mode(WINDOW_SIZE)
  36.    
  37.  
  38.     pygame.display.set_caption("Array Backed Grid")
  39.    
  40.  
  41.     done = False
  42.  
  43.     clock = pygame.time.Clock()
  44.    
  45.  
  46.     h=0
  47.     v=0
  48.     print(snake_tails)
  49.     while not done:
  50.         for i in pygame.event.get():
  51.             if i.type == pygame.QUIT:  
  52.                 done = True
  53.  
  54.             elif i.type == pygame.KEYDOWN:
  55.                 if i.key == pygame.K_LEFT:
  56.                     h=-1
  57.                     v=0
  58.                 elif i.key == pygame.K_RIGHT:
  59.                     h=1
  60.                     v=0
  61.                 elif i.key == pygame.K_DOWN:
  62.                     v=1
  63.                     h=0
  64.                 elif i.key == pygame.K_UP:
  65.                     v=-1
  66.                     h=0
  67.        
  68.  
  69.         if h + v != 0:
  70.             # remove tail segment
  71.             tail = snake_tails[0]
  72.             grid[tail[0]][tail[1]] = 0
  73.             snake_tails[:] = snake_tails[1:]
  74.             # append segment to head
  75.             head = snake_tails[-1]
  76.             new_segment = [head[0]+v, head[1]+h]
  77.             print(snake_tails, 'head', head, 'new', new_segment)
  78.             new_segment_ok = 0 <= new_segment[0] < SIZE and 0 <= new_segment[1] < SIZE
  79.             if (not new_segment_ok):
  80.                 done = True
  81.                 break
  82.             snake_tails.append(new_segment)
  83.             head = new_segment
  84.             grid[head[0]][head[1]] = 1
  85.             print(snake_tails)
  86.  
  87.        
  88.         for row in range(SIZE+1):
  89.             for column in range(SIZE+1):
  90.                 color = WHITE
  91.                 if grid[row][column] == 1:
  92.                     color = GREEN
  93.  
  94.                 pygame.draw.rect(screen,
  95.                                 color,
  96.                                 [(MARGIN + WIDTH) * column + MARGIN,
  97.                                 (MARGIN + HEIGHT) * row + MARGIN,
  98.                                 WIDTH,
  99.                                 HEIGHT])
  100.    
  101.  
  102.         clock.tick(10)
  103.  
  104.         pygame.display.update()
  105.         # screen.fill(WHITE)
  106.    
  107.     pygame.quit()
  108.  
  109. main_loop()
RAW Paste Data