Juego del snake en python

import pygame, sys, time
from pygame.locals import * #importa constantes para manipular teclas del teclado
from random import randint #genera numeros en rango

def dibujarsnake(snake, ventana): #modulo para dibujar a la viborita
    for i in range(len(snake)): #regresa el numero de elementos del arreglo con un for
        pygame.draw.rect(ventana,(0,0,0,0),(snake[i][1]*20, snake[i][0]*20,20,20),5) #dibuja la ventana y hace que solo se dibujen coordenadas rectangulares
def avanzar(snake, nuevaposicion): #modulo para que avance el snake
    for i in reversed(range(1,len(snake))):
        snake[i]=snake[i-1] #se va sobreescribiendo el valor del arreglo mientras avanza
    snake[0]=nuevaposicion
    return snake
def iniciarventana():# modulo que abre la ventana
    ventana=pygame.display. set_mode((600,500)) #abre la ventana
    snake,limites=[[5,7],[5,6],[5,5]], [5,7,5,5] #genera limites para el movimiento de la snake
    derecha, izquierda, arriba, abajo, rand1, rand2= True, False, False, False, 10, 10
    R,G,B=0,0,255

    while True:
        ventana.fill((255,255,255))
        dibujarsnake(snake, ventana)
        pygame.draw.rect(ventana,(R,G,B,0),(rand1*20, rand2*20,20,20),7)

        for events in pygame.event.get():
            if events.type==QUIT:
                pygame.quit()
                sys.exit()
            elif events.type==KEYDOWN:
                if events.key==K_DOWN and arriba==False: abajo, arriba, derecha, izquierda=True, False, False, False #declara las teclas y les da un evento

                elif events.key==K_UP and abajo==False: arriba, abajo, derecha, izquierda=True, False, False, False

                elif events.key==K_RIGHT and izquierda==False: derecha, arriba, abajo, izquierda=True, False, False, False

                elif events.key==K_LEFT and derecha==False: izquierda, arriba, derecha, abajo= True, False, False, False

        if snake[0][0]==rand2 and snake[0][1]==rand1:
            snake.append([0,0])
            rand1, rand2, R,G,B = randint(1,25), randint(1,25), randint(10,225), randint(10,225), randint(10,225)#crea el cuadrito

        for i in range(1, len(snake)):
            if snake[0][0]==snake[i][0] and snake[0][1]==snake[i][1]:
                pygame.quit()
                sys.exit() #dependiendo de la posicion del snake, si se come a si misma, se cierra la ventana

        if derecha==True: snake=avanzar(snake,[snake[0][0], snake[0][1]+1])#Declara posiciones para el movimiento del snake
        elif izquierda==True: snake==avanzar(snake, [snake[0][0], snake[0][1]-1])
        elif arriba==True: snake=avanzar(snake, [snake[0][0]-1, snake[0][1]])
        elif abajo==True: snake=avanzar(snake, [snake[0][0]+1, snake[0][1]])
        time.sleep(.1)#Velocidad del movimiento del vector
        pygame.display.update()

def main():
    iniciarventana()
main()


Comentarios

Entradas populares