用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()贪食蛇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值