Red de conocimiento informático - Problemas con los teléfonos móviles - Juego con código fuente Python

Juego con código fuente Python

#!/usr/bin/python

Desde Tkinter import *

Importación aleatoria

Snake (framework):

def __init__ ( self, master=Ninguno):

Marco.

__init__(self, main)

self.body = [(0, 0)]

self.bodyid = []

self.food = [ - 1, -1 ]

self.foodid = -1

self.gridcount = 10

self.size = 500

self .di = 3

Autovelocidad = 500

self.top = self.winfo_toplevel()

self.top.resizable(False, False)

p>

self.grid()

self.canvas = Lienzo(self)

self.canvas.grid()

self . canvas config(ancho = self. tamaño, alto = self.size, relieve = RIDGE)

self.drawgrid()

s = self.size/self.gridcount<. /p>

id = self . lienzo . crear _ rectángulo(self . body[0][0]*s, self.body[0][1]*s,

(self. cuerpo[0 ][0] 1)*s, (self . cuerpo[0][1] 1)* s, fill="amarillo ")

self.bodyid.insert(0,id)

self.bind_all("lt;KeyRelease>, self.keyrelease)

self.drawfood()

self.after(self.speed, self. drawsnake )

Defina la cuadrícula de dibujo (self):

s = self.size/self.gridcount

Para I(0, self.gridcount en el rango 1 ):

self.canvas.create_line(i*s, 0, i*s, self.size)

self.canvas.create_line(0, i*s, self . tamaño, i*s)

def drawsnake(self):

s = self.size/self.gridcount

cabeza = self.body[0]

nuevo = [cabeza[0], cabeza[1]]

Si self.di == 1:

nuevo[1]=(cabeza [ 1]-1) self . recuento de cuadrícula

elif self.di == 2:

new[0]=(head[0] 1) self . >

elif self.di == 3:

new[1]=(head[1] 1) self . grid count

De lo contrario:

nuevo[0]=(head[0]-1) self . recuento de cuadrícula

siguiente = (nuevo[0], nuevo[1])

Si está en se

Siguiente en lf.body:

Salir()

elif siguiente == (self.food[0], self.food[1]):

self.body.insert(0, siguiente)

self.bodyid.insert(0, self.foodid)

self.drawfood()

De lo contrario:

tail = self.body.pop()

id = self.bodyid.pop()

self.canvas.move(id, (siguiente[ 0]-tail[0])*s, (siguiente[1]-tail[1])*s)

self.body.insert(0, siguiente)

self .bodyid.insert(0, id)

self.after(self.speed, self.drawsnake)

def drawfood(self):

s = self.size/self.gridcount

x = random.randrange(0, self.gridcount)

y = random.randrange(0, self.gridcount)

p >

mientras (x, y) en self.body:

x = random.randrange(0, self.gridcount)

y = random.randrange(0, self .gridcount)

id = self . crear _ rectángulo(x * s, y*s, (x 1)*s, (y 1)*s, fill="amarillo ")< / p>

self.food[0] = x

self.food[1] = y

self.foodid = id

liberación de clave def (self, evento):

if event.keysym == "Arriba" y self.di! = 3:

self.di = 1

elif event.keysym == "Correcto" y self.di! =4:

self.di = 2

elif event.keysym == "Abajo" y self.di! = 1:

self.di = 3

elif event.keysym == "Izquierda" y self.di! = 2:

self.di = 4

app = serpiente()

app.master.title("Serpiente codiciosa")

App.mainloop() serpiente