1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python连连看小游戏_请用PYTHON编一个小游戏 如五子棋 连连看 贪吃蛇 扫雷 计算器等等...

python连连看小游戏_请用PYTHON编一个小游戏 如五子棋 连连看 贪吃蛇 扫雷 计算器等等...

时间:2018-12-14 05:33:12

相关推荐

python连连看小游戏_请用PYTHON编一个小游戏 如五子棋 连连看 贪吃蛇 扫雷 计算器等等...

展开全部

#!/usr/bin/python

from Tkinter import *

import random

class snake(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.body = [(0,0)]

self.bodyid = []

self.food = [ -1, -1 ]

self.foodid = -1

self.gridcount = 10

self.size = 500

self.di = 3

self.speed = 500

self.top = self.winfo_toplevel()

self.top.resizable(False, False)

self.grid()

self.canvas = Canvas(self)

self.canvas.grid()

self.canvas.config(width=self.size, height=self.size,relief=RIDGE)

self.drawgrid()

s = self.size/self.gridcount

id = self.canvas.create_rectangle(self.body[0][0]*s,self.body[0][1]*s,

(self.body[0][0]+1)*s, (self.body[0][1]+1)*s, fill="yellow")

self.bodyid.insert(0, id)

self.bind_all("", self.keyrelease)

self.drawfood()

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

def drawgrid(self):

s = self.size/self.gridcount

for i in range(0, self.gridcount+1):

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

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

def drawsnake(self):

s = self.size/self.gridcount

head = self.body[0]

new = [head[0], head[1]]

if self.di == 1:

new[1] = (head[1]-1) % self.gridcount

elif self.di == 2:

new[0] = (head[0]+1) % self.gridcount

elif self.di == 3:

new[1] = (head[1]+1) % self.gridcount

else:

new[0] = (head[0]-1) % self.gridcount

next = ( new[0], new[1] )

if next in self.body:

exit()

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

self.body.insert(0, next)

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

self.drawfood()

else:

tail = self.body.pop()

id = self.bodyid.pop()

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

self.body.insert(0, next)

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)

while (x, y) in self.body:

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

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

id = self.canvas.create_rectangle(x*s,y*s, (x+1)*s, (y+1)*s, fill="yellow")

self.food[0] = x

self.food[1] = y

self.foodid = id

def keyrelease(self, event):

if event.keysym == "Up" and self.di != 3:

self.di = 1

elif event.keysym == "Right" and self.di !=4:

self.di = 2

elif event.keysym == "Down" and self.di != 1:

self.di = 3

elif event.keysym == "Left" and self.di != 2:

self.di = 4

app = snake()

app.master.title("Greedy Snake")

app.mainloop()

贪食蛇e69da5e887aa62616964757a686964616f31333332616461

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。