资源简介
python实现的GUI井字棋游戏,精美的开始界面及开始按钮
游戏功能:
机器人:简单的AI人工智能算法
玩家:鼠标操作
代码片段和文件信息
import tkinter as tk
from tkinter import messagebox
class Window(object):
def __init__(self master):
self.master = master
self.game = Game()
self.can = None
self.start_game()
def start_game(self):
global imag1 imag2
self.lf = tk.Labelframe(self.master)
self.lbl = tk.Label(self.lf image=imag1)
self.lbl.pack()
self.btn = tk.Button(self.lf image=imag2 command=self.create_board)
self.btn.place(x=95 y=140)
self.lf.pack()
def create_board(self):
global imag3
if self.lf:
self.lf.destroy()
if self.can:
self.can.destroy()
self.game.over = False
self.game.board = [i for i in range(9)]
self.can = tk.Canvas(self.master width=300 height=300)
self.can.create_line((30 30) (270 30) width=2)
self.can.create_line((270 30) (270 270) width=2)
self.can.create_line((270 270) (30 270) width=2)
self.can.create_line((30 270) (30 30) width=2)
for i in range(3):
self.can.create_line((30 (i + 1) * 80 + 30) (270 (i + 1) * 80 + 30) width=2)
for i in range(3):
self.can.create_line(((i + 1) * 80 + 30 30) ((i + 1) * 80 + 30 270) width=2)
self.can.pack(expand=‘YES‘ fill=‘both‘)
self.can.bind(““ self.func)
self.btn1 = tk.Button(self.master text=‘重新开始‘ command=self.create_board)
self.btn1.place(x=120 y=273)
def func(self event):
if self.game.over:
tk.messagebox.showinfo(‘提示‘ ‘游戏已结束!‘)
return
sum = 0
flag = False
for i in range(30 191 80):
for j in range(30 191 80):
sum += 1
if j <= event.x < j + 80 and i <= event.y < i + 80:
self.can.create_oval((j i) (j + 80 i + 80) width=2 outline=‘red‘)
self.game.board[sum - 1] = ‘O‘
flag = True
break
if flag:
break
if flag:
if self.game.isWinner(self.game.board):
tk.messagebox.showinfo(‘提示‘ ‘玩家胜利!‘)
self.game.over = True
elif self.game.is_Tie():
tk.messagebox.showinfo(‘提示‘ ‘平局!游戏结束‘)
self.game.over = True
else:
self.robot_draw()
def robot_draw(self):
move = self.game.Rob_play() + 1
sum = 0
flag = False
for i in range(30 191 80):
for j in range(30 191 80):
sum += 1
if sum == move:
self.can.create_line((j i) (j + 80 i + 80) width=2 fill=‘blue‘)
self.can.create_line((j i + 80) (j + 80 i) width=2 fill=‘blue‘)
self.game.board[sum - 1] = ‘X‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11377 2020-07-07 19:02 GUI-井字棋\image\井字棋-开始游戏.png
文件 23435 2020-07-07 18:59 GUI-井字棋\image\井字棋界面.png
文件 5331 2020-07-20 10:23 GUI-井字棋\Window.py
文件 4823 2020-07-07 20:18 GUI-井字棋\__pycache__\Window.cpython-38.pyc
目录 0 2020-07-20 10:18 GUI-井字棋\image
目录 0 2020-07-07 20:18 GUI-井字棋\__pycache__
目录 0 2020-07-20 10:23 GUI-井字棋
----------- --------- ---------- ----- ----
44966 7
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论