1votos

Snake en Python

por josejuan hace 6 años

Python ya no tiene secretos para mí :P

Fernando de Genbetadev dice que si haces un Snake en un lenguaje, entonces, ese lenguaje ya casi no tiene secretos para tí.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import pygame 
import array 
import random 
 
(S, X) = (11, 40) 
S2 = S * S 
(J, j, g, P, u, y, t) = ([S, -1, S2 - S, 1], 0, [0 for _ in range(S2)], range(S2), S2 >> 1, 255, 0) 
(v, W) = (u, (y, y, y)) 
 
pygame.init() 
s = pygame.display.set_mode((S * X, S * X)) 
pygame.display.set_caption('Chorrada de Snake') 
s.fill(W) 
 
def box(c, p): s.fill(c, ((p % S) * X, (p / S) * X, X, X)) 
 
def out(m): 
    rt = pygame.font.SysFont('Arial', 18).render(m, 1, (0, 0, 0)) 
    (_, _, w, h) = rt.get_rect() 
    s.blit(rt, ((s.get_width() - w) >> 1, (s.get_height() - h) >> 1)) 
    pygame.display.flip() 
 
while(1): 
    pygame.time.wait(250) 
    for e in pygame.event.get(): 
        if e.type == 3: 
            j += 1 
            if e.key == 113: j += 2 
            j %= 4 
    w = P[u] + J[j] 
    if j == 1 and (S + w) % S == S - 1: w += S 
    if j == 3 and w % S == 0: w += S2 - S; 
    w %= S2 
    if g[w] == 1: out("YOU LOSSE!"); break 
    if g[w] == 0: box(W, P[v]); g[P[v]] = 0; v = (v + 1) % S2 
    u = (u + 1) % S2 
    (P[u], g[w]) = (w, 1) 
    box((0, y, 0), w) 
    t += 1 
    if t % 10 == 0: 
        f = random.choice([i for i in range(S2) if g[i] == 0]) 
        g[f] = 2 
        box((y, 0, 0), f) 
    pygame.display.flip() 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.