Advertisement
trodland

Snake

Sep 4th, 2020
1,429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.68 KB | None | 0 0
  1. import pygame, sys, random
  2. from pygame.locals import *
  3. pygame.init()
  4. pygame.display.set_caption('Snake')
  5. clock = pygame.time.Clock()
  6. screen  = pygame.display.set_mode((500, 500))
  7. snake = [[25,25],[26,25],[27,25],[28,25]]
  8. appleX,appleY = 10,10
  9. dirx,diry = -1,0
  10. grid  = 10
  11. body = pygame.Surface((grid,grid))
  12. body.fill((0,255,0))
  13. apple = pygame.Surface((grid,grid))
  14. apple.fill((255,0,0))
  15.  
  16. def checkOverlap():
  17.     for x,y in snake[3:]:
  18.         if snake[0][0] == x and snake[0][1] == y: endgame()
  19.        
  20. def checkAppleHit():
  21.     global appleX, appleY
  22.     if snake[0][0] == appleX and snake[0][1] == appleY:
  23.         appleX,appleY = random.randrange(2,48),random.randrange(2,48) #Plasser nytt eple
  24.         snake.insert(1,[snake[1][0],snake[1][1]]) #Doble ledd nr 2
  25.        
  26. def endgame():
  27.     pygame.quit()
  28.     sys.exit()
  29.    
  30. while True:
  31.     screen.fill((255,255,255))
  32.     snake.pop(-1) #Fjerner siste del av halen
  33.     snake.insert(0,[snake[0][0]+dirx,snake[0][1]+diry]) #Legger til en ny del først i den retningen slangen beveger seg.
  34.     screen.blit(apple, (appleX*grid,appleY*grid))
  35.     for x,y in snake:      
  36.         screen.blit(body, (x*grid, y*grid))
  37.     checkAppleHit()
  38.     checkOverlap()
  39.     for event in pygame.event.get():
  40.         if event.type == pygame.KEYDOWN:
  41.             if event.key == pygame.K_LEFT and not dirx == 1: dirx,diry = -1,0
  42.             if event.key == pygame.K_RIGHT and not dirx == -1: dirx,diry = 1,0
  43.             if event.key == pygame.K_UP and not diry == 1: dirx,diry = 0,-1
  44.             if event.key == pygame.K_DOWN and not diry == -1: dirx,diry = 0,1
  45.         if event.type == QUIT: endgame()
  46.     pygame.display.update()
  47.     clock.tick(8)
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement