Creación del juego snake. Para ello necesitamos 3 objetos principales: la serpiente, la comida y el tablero.
Guardamos el cuerpo de la serpiente en una lista y por otro lado la posición de la cabeza.
snake_pos = [10*DIM, 5*DIM]
snake_body = [[10*DIM, 5*DIM]]
y comenzamos el bucle de juego. Cada X segundos actualizamos la serpiente en la siguiente posición (acorde con su dirección), y posteriormente vemos si eliminar la anterior dependiendo de si ha comido o no.
snake_body.insert(0, list(snake_pos))
if snake_pos == food_pos:
food_pos = food()
score += 1
else:
snake_body.pop()
Se genera una nueva cada vez que la serpiente se come una. Para elegir el lugar buscamos una posición aleatoria en el tablero. Además comprobaremos que no colisione con la serpiente.
def food():
x_pos = random.randint(0,NX-1)*DIM
y_pos = random.randint(0,NY-1)*DIM
food_pos = [x_pos, y_pos]
return food_pos
Para la creación del tablero solamente dibujamos en el fondo líneas verticales y horizontales.
for i in range(NY+1):
pygame.draw.rect(play_surface, GRIS, pygame.Rect(0, i*DIM-1, ANCHURA, 2))
for i in range(NY+1):
pygame.draw.rect(play_surface, GRIS, pygame.Rect(i*DIM-1, 0, 2, ALTURA))