Código de programación interesante en Python
clase?Punto: fila=0 col=0 def?__init__(self,?fila,?col):
self.row=fila
self .col=col def?copy(self):
return?Point(row=self.row,?col=self.col)
#Marco inicial
importar?pygame
importar?aleatorio
#Inicialización
pygame.init()
W=800
H=600
FILA=30
COL=40
tamaño=(W, H)
ventana=pygame .display.set_mode(tamaño)
pygame.display.set_caption('Serpiente')
bg_color=(255, 255, 255)
snake_color =( 200, 200, 200)
head=Point(row=int(ROW/2),?col=int(COL/2))
head_color=(0, 128, 128)
serpientes=[ Punto(fila=head.row,?col=head.col 1), Punto(fila=head.row,?col=head.col 2), Punto( fila= head.row,?col=head.col 3)
]
#Generar comida
def?gen_food(): while?1:
pos=Punto(fila=random.randint(0, FILA-1),?col=random.randint(0, COL-1))
#
is_coll=False
#¿Te has encontrado con una serpiente
if?head.row==pos.row?and?head.col==pos.col: is_coll= True p>
#SNAKEBODY
para?snake?in?snakes: if?snake.row==pos.row?and?snake.col==pos.col: p>
is_coll=True
romper
if?not?is_coll: romper retorno?pos
#Definir coordenadas
food=gen_food( )
food_color=(255, 255, 0)
direct='izquierda'#izquierda, derecha, arriba, abajo
#
def?rect(punto,?color): ancho_celda=W/COL altura_celda=H/ROW izquierda=punto.col*ancho_celda top=punto.fila*altura_celda pygame.draw.rect(
ventana ,?color,
(izquierda,?arriba,?cell_width,?cell_height) ) pasar
#Bucle de juego
quit=True
clock=pygame.time.Clock()
while?quit: #¿Manejar eventos para?evento? in?pygame.event.get():
if?event.type==pygame.QUIT: quit=False
elif?event.type==pygame.KEYDOWN: si ?event.key==273?or?event.key==119:
if?direct=='izquierda'?or?direct=='derecha': directo='arriba' elif?event .key==274?or?event.key==115:
if?direct?==?'left'?or?direct?==?'right': direct='abajo' elif ?event.key==276?or?event.key==97:
if?direct?==?'arriba'?or?direct?==?'abajo': directo='izquierda ' elif?event.key==275?or?event.key==100:
if?direct?==?'up'?or?direct?==?'down': directo= 'correcto' #Comer algo comer=(head.row==food.row?and?head.col==food.col) #Regenerar alimentos si?comer:
comida?=?gen_food() #Procesando el cuerpo#1. Inserta la cabeza original en la cabeza de serpientes.insert(0,?head.copy()) #2. Elimina la última de las serpientes si?no?come:
serpientes.pop() #Mover if?direct=='izquierda':
head.col-=1 elif?direct=='derecha':
head .col =1 elif?direct=='arriba':
head.row-=1 elif?direct=='abajo':
head.row =1 #Detectar muerto =Falso #1 . Golpea la pared if?head.collt;0?or?head.rowlt;0?or?head.colgt;=COL?or?head.rowgt;=ROW:
dead=True #2. Bócate por?snake?in?snakes:
if?head.col==snake.col?and?head.row==snake.row: dead=True break if?dead:
print('dead')
quit=False #Renderizado - dibujarlo #Fondo pygame.draw.rect(ventana,?bg_color,?(0,0,W, H)) # Cabeza de serpiente para?serpiente?en?serpientes:
rect(snake,?snake_color) rect(head,?head_color) rect(food,?food_color) #
pygame.display.flip() #Establece la velocidad de fotogramas (velocidad) clock.tick(8)
#Terminar el trabajo
Esta es una versión simplificada del código de Snake, aunque la estructura Sencillo, pero todas las funciones están completas y la jugabilidad también es buena