from tkinter.messagebox import * # 导入消息弹出库
from tkinter import * # 导入tkinter界面库
from random import * # 导入random随机库
from PIL import Image, ImageTk # 导入PIL包中的Image包和ImageTk包,用于打开图片,用作背景(可更换图片)
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("start.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 = ['cyan', 'pink']
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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='cyan',
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,
没有合适的资源?快使用搜索试试~ 我知道了~
python五子棋小游戏直接用
共4个文件
wav:1个
py:1个
png:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 159 浏览量
2024-01-04
11:13:40
上传
评论
收藏 2MB RAR 举报
温馨提示
python五子棋小游戏直接用
资源推荐
资源详情
资源评论
收起资源包目录
五子棋(一念关山).rar (4个子文件)
五子棋(一念关山)
运行结果.gif 1.83MB
lss.png 51KB
main.py 26KB
start.wav 535KB
共 4 条
- 1
资源评论
Want595
- 粉丝: 7w+
- 资源: 71
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功