from tkinter.messagebox import *
from tkinter import*
from random import*
import winsound
import os
#声明全局变量开始
global canvas
global back_x,back_y,last
global qipan
qipan= [[2 for i in range(16)]for i in range(16)] #2表示空,0表示红棋,1表示绿棋
col= ['红','绿']
global index #创建落子计数变量
index= 0
global var_top
global hui
hui=0
#声明全局变量结束
long= 100
dtmf= [697,770,852,941,1209,1336,1477,1633]
fequency=[440,494,554,587,659,740,831,880]
winsound.PlaySound("1.wav",0) #播放启动音效
#函数开始
def another_color(color):
return 1-color
def is_win(color): #判赢函数
global qipan
global index
global canvas
kuan=16
i=j=0
#横排
for i in range(kuan):
for j in range(kuan-4):
if(qipan[i][j]==color and qipan[i][j+1]==color and qipan[i][j+2]==color and qipan[i][j+3]==color and qipan[i][j+4]==color):
return 1
#竖排
for i in range(kuan-4):
for j in range (kuan):
if(qipan[i][j]==color and qipan[i+1][j]==color and qipan[i+2][j]==color and qipan[i+3][j]==color and qipan[i+4][j]==color):
return 1
#副对角线
for i in range(kuan-4):
for j in range(4,kuan):
if(qipan[i][j]==color and qipan[i+1][j-1]==color and qipan[i+2][j-2]==color and qipan[i+3][j-3]==color and qipan[i+4][j-4]==color):
return 1
#主对角线
for i in range(kuan-4):
for j in range(kuan-4):
if(qipan[i][j]==color and qipan[i+1][j+1]==color and qipan[i+2][j+2]==color and qipan[i+3][j+3]==color and qipan[i+4][j+4]==color):
return 1
return 0 #定义判定胜负函数
def is_kongde(x,y): #判空函数
if(qipan[x][y]==2):
return 1
else:
return 0
def AI(colo):
global qipan
global index
global canvas
color=['red','green']
kuan=16
initial_value=2
#1--己方四连A--黑黑黑黑空
#横排
for i in range(16):
for j in range(12):
if (qipan[i][j] == colo and qipan[i][j + 1] == colo and qipan[i][j + 2] == colo and qipan[i][j + 3] == colo and qipan[i][j + 4] == initial_value):
j=j+4
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 1
#竖排
for i in range(12):
for j in range(16):
if (qipan[i][j] == colo and qipan[i + 1][j] == colo and qipan[i + 2][j] == colo and qipan[i + 3][j] == colo and qipan[i + 4][j] == initial_value):
i=i+4
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 1
#副对角线
for i in range(12):
for j in range(4,16):
if (qipan[i][j] == colo and qipan[i + 1][j - 1] == colo and qipan[i + 2][j - 2] == colo and qipan[i + 3][j - 3] == colo and qipan[i + 4][j - 4] == initial_value):
i=i+4
j=j-4
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 1
#主对角线
for i in range(12):
for j in range(12):
if (qipan[i][j] == colo and qipan[i + 1][j + 1] == colo and qipan[i + 2][j + 2] == colo and qipan[i + 3][j + 3] == colo and qipan[i + 4][j + 4] == initial_value):
i=i+4
j=j+4
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 1
#2--己方四连B--空黑黑黑黑
#横排
for i in range(16):
for j in range(12):
if (qipan[i][j] == initial_value and qipan[i][j + 1] == colo and qipan[i][j + 2] == colo and qipan[i][j + 3] == colo and qipan[i][j + 4] == colo):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 2
#竖排
for i in range(12):
for j in range(16):
if (qipan[i][j] == initial_value and qipan[i + 1][j] == colo and qipan[i + 2][j] == colo and qipan[i + 3][j] == colo and qipan[i + 4][j] == colo):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 2
#副对角线
for i in range(12):
for j in range(4,16):
if (qipan[i][j] == initial_value and qipan[i + 1][j - 1] == colo and qipan[i + 2][j - 2] == colo and qipan[i + 3][j - 3] == colo and qipan[i + 4][j - 4] == colo):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 2
#主对角线
for i in range(12):
for j in range(12):
if (qipan[i][j] == initial_value and qipan[i + 1][j + 1] == colo and qipan[i + 2][j + 2] == colo and qipan[i + 3][j + 3] == colo and qipan[i + 4][j + 4] == colo):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 2
#3--对方四连A--空白白白白
#横排
for i in range(16):
for j in range(12):
if (qipan[i][j] == initial_value and qipan[i][j + 1] == another_color(colo) and qipan[i][j + 2] == another_color(colo) and qipan[i][j + 3] == another_color(colo) and qipan[i][j + 4] == another_color(colo)):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 3
#竖排
for i in range(12):
for j in range(16):
if (qipan[i][j] == initial_value and qipan[i + 1][j] == another_color(colo) and qipan[i + 2][j] == another_color(colo) and qipan[i + 3][j] == another_color(colo) and qipan[i + 4][j] == another_color(colo)):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 3
#副对角线
for i in range(12):
for j in range(4,16):
if (qipan[i][j] == initial_value and qipan[i + 1][j - 1] == another_color(colo) and qipan[i + 2][j - 2] == another_color(colo) and qipan[i + 3][j - 3] == another_color(colo) and qipan[i + 4][j - 4] == another_color(colo)):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 3
#主对角线
for i in range(12):
for j in range(12):
if (qipan[i][j] == initial_value and qipan[i + 1][j + 1] == another_color(colo) and qipan[i + 2][j + 2] == another_color(colo) and qipan[i + 3][j + 3] == another_color(colo) and qipan[i + 4][j + 4] == another_color(colo)):
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 3
#4--对方四连B--白白白白空
#横排
for i in range(16):
for j in range(12):
if (qipan[i][j] == another_color(colo) and qipan[i][j + 1] == another_color(colo) and qipan[i][j + 2] == another_color(colo) and qipan[i][j + 3] == another_color(colo) and qipan[i][j + 4] == initial_value):
j=j+4
qipan[i][j] = colo
canvas.create_oval((i*30)-10,(j*30)-10,(i*30)+10,(j*30)+10,fill='red',tags=('chess'))
return 4
#竖排
for i in range(12):
for j in range(16):
if (qipan[i][j] == another_color(colo) and
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Python实现的五子棋tkinter版小游戏代码(高分项目),高分项目期末大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,项目代码完整下载即可运行。 基于Python实现的五子棋tkinter版小游戏代码(高分项目),高分项目期末大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,项目代码完整下载即可运行。 基于Python实现的五子棋tkinter版小游戏代码(高分项目),高分项目期末大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,项目代码完整下载即可运行。 基于Python实现的五子棋tkinter版小游戏代码(高分项目),高分项目期末大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,项目代码完整下载即可运行。
资源推荐
资源详情
资源评论





























收起资源包目录












共 10 条
- 1
资源评论


王二空间
- 粉丝: 9359
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 全国计算机等级考试四级网络工程师考试复习.doc
- 大数据行业发展白皮书-D.docx
- 基于ASPNET的博客系统的方案设计书与实现.doc
- VB-SQL工资管理研究.doc
- 步进驱动系统与数控圆弧插补程序设计.doc
- Ubuntu图形(图解)安装教程基本设置网络设置软件源硬件驱动UnityDGnomeU盘安装.doc
- 单片机原理及接口技术课程设计方案(煤矿瓦斯监测仪设计方案).doc
- 计算机网络题目.doc
- AI大数据为教师专业成长赋能.docx
- 习题售前服务(电子商务三四).doc
- 嵌入式系统课程设计报告.docx
- 运用信息化手段开展小学美术欣赏教学.docx
- 智能家居系统设计方案.doc
- 体育用品租赁业务流程自动化.docx
- CAD工程制图键盘快捷命令.doc
- 自动化技术在电子信息工程设计中的应用1.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
