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
Publicar un comentario