Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame, sys
- import random
- pygame.init()
- x = 200
- y = 200
- fx = 0
- fy = 0
- followers = 0
- screen = pygame.display.set_mode((500, 500))
- pygame.display.set_caption('Snake but from memory')
- player = pygame.draw.rect(screen,(255,255,255),(1000,1000,50,50))
- body = []
- fruit = pygame.draw.rect(screen,(255,0,0),(1000,1000,25,25))
- lastkey = [(50,0)]
- pastkeys = []
- def reset():
- global x
- global y
- global followers
- global lastkey
- global pastkeys
- x = 200
- y = 200
- followers = 0
- lastkey = [(50,0)]
- pastkeys = []
- body = []
- def generate_fruit():
- global fx
- global fy
- fx = random.randint(0,9) * 50 #+ 13
- fy = random.randint(0,9) * 50 #+ 13
- if fx == x and fy == y:
- print('Cant spawn there, snake head is occupying the space!')
- generate_fruit()
- else:
- for rect in body:
- if rect.x == fx and rect.y == fy:
- print('Cant spawn there, snake body is occupying the space!')
- generate_fruit()
- break
- fx = fx + 2
- fy = fy + 2
- #print(fx, ' ', fy)
- reset()
- generate_fruit()
- while True:
- for event in pygame.event.get():
- if event.type == pygame.QUIT: sys.exit()
- if event.type==pygame.KEYDOWN:
- if event.key==pygame.K_RIGHT:
- lastkey.append((50,0))
- elif event.key==pygame.K_LEFT:
- lastkey.append((-50,0))
- elif event.key==pygame.K_UP:
- lastkey.append((0,-50))
- elif event.key==pygame.K_DOWN:
- lastkey.append((0,50))
- elif event.key==pygame.K_r:
- generate_fruit()
- #print(lastkey)
- x = x + lastkey[0][0]
- y = y + lastkey[0][1]
- #print(pastkeys)
- if len(lastkey) > 1:
- lastkey.remove(lastkey[0])
- if x >= 500:
- x = 0
- elif x < 0:
- x = 450
- if y >= 500:
- y = 0
- elif y < 0:
- y = 450
- pastkeys.insert(0,(x, y))
- #if len(pastkeys) >= 101:
- #pastkeys.remove(pastkeys[100])
- fruit = pygame.draw.rect(screen,(255,0,0),(fx,fy,25,25))
- player = pygame.draw.rect(screen,(100,255,100),(x,y,30,30))
- for _ in range(followers):
- #print(_)
- if _ == 0:
- continue
- body.append(pygame.draw.rect(screen,(150,255,150),(pastkeys[_][0],pastkeys[_][1],30,30)))
- while len(body) > followers - 1:
- body.remove(body[0])
- #print(body)
- if pygame.Rect.colliderect(player,fruit):
- generate_fruit()
- if followers == 0:
- followers = followers + 2
- else:
- followers = followers + 1
- if pygame.Rect.collidelist(player,body) > -1:
- pygame.time.wait(4000)
- reset()
- pygame.display.update()
- #print(x, ' ', y)
- screen.fill((0,0,0))
- pygame.time.delay(250)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement