你要向上走 2022-04-28 20:36 采纳率: 50%
浏览 58

参考下面给出的代码用tkinter编写五子棋程序,并编写代码实现判断胜负的功能。

import sys
import tkinter
from tkinter import *
from tkinter.messagebox import *

game->start命令处理函数

def startGame():
global turn,board
turn=True
board=[[0 for i in range(15)] for j in range(15)]
drawBoard()

game->exit命令处理函数

def exit():
win.destroy()
sys.exit()

help->about命令处理函数

def about():
showinfo("About","Gobang v0.1")

绘制棋盘和棋子

def drawBoard():
global canvas,board

# 画棋盘

canvas.delete("all")                    #清除画布
for i in range(15):                     #画横线
    canvas.create_line(30,30+40*i,30+40*14,30+40*i,width=1,fill='black')
for j in range(15):                     #画纵线
    canvas.create_line(30+40*j,30,30+40*j,30+40*14,width=1,fill='black')

#画棋子
for i in range(15):
    for j in range(15):
        if board[i][j]==0:              #无棋子
            continue
        elif board[i][j]==-1:           #黑棋
            color='black'
        else:                           #白棋
            color='white'
        canvas.create_oval(j*40+15,i*40+15,j*40+45,i*40+45,fill=color)

#鼠标左键拾起事件的事件处理函数
def onMouseUp(event):
global turn
x,y=event.x,event.y #获取鼠标的当前坐标
if x>10 and x<610 and y>10 and y<610:
n=(x-10)//40
m=(y-10)//40
board[m][n]=-1 if turn else 1 #设计鼠标点击位置的对应board元素的值
drawBoard()
if isWin(turn):
showinfo("Gobang","黑棋获胜!" if turn else "白棋获胜!")
startGame()
turn=not turn #设置下一次是黑棋还是白棋
#判断是否胜利
def isWin(turn):

  • 写回答

1条回答 默认 最新

  • bj_0163_bj 2022-04-28 21:30
    关注

    网上找个完整代码抄一下吧,有五子棋的

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月28日

悬赏问题

  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决