Python小游戏(XO大战)
源码分享:
from tkinter import *
import tkinter.messagebox as msgroot = Tk()
root.title('TIC-TAC-TOE---Project Gurukul')
# labels
Label(root, text="player1 : X", font="times 15").grid(row=0, column=1)
Label(root, text="player2 : O", font="times 15").grid(row=0, column=2)digits = [1, 2, 3, 4, 5, 6, 7, 8, 9]# for player1 sign = X and for player2 sign= Y
mark = ''# counting the no. of click
count = 0panels = ["panel"] * 10def win(panels, sign):return ((panels[1] == panels[2] == panels[3] == sign)or (panels[1] == panels[4] == panels[7] == sign)or (panels[1] == panels[5] == panels[9] == sign)or (panels[2] == panels[5] == panels[8] == sign)or (panels[3] == panels[6] == panels[9] == sign)or (panels[3] == panels[5] == panels[7] == sign)or (panels[4] == panels[5] == panels[6] == sign)or (panels[7] == panels[8] == panels[9] == sign))def checker(digit):global count, mark, digits# Check which button clickedif digit == 1 and digit in digits:digits.remove(digit)##player1 will play if the value of count is even and for odd player2 will playif count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton1.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 2 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton2.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 3 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton3.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 4 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton4.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 5 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton5.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 6 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton6.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 7 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton7.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 8 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton8.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()if digit == 9 and digit in digits:digits.remove(digit)if count % 2 == 0:mark = 'X'panels[digit] = markelif count % 2 != 0:mark = 'O'panels[digit] = markbutton9.config(text=mark)count = count + 1sign = markif (win(panels, sign) and sign == 'X'):msg.showinfo("Result", "Player1 wins")root.destroy()elif (win(panels, sign) and sign == 'O'):msg.showinfo("Result", "Player2 wins")root.destroy()###if count is greater then 8 then the match has been tiedif (count > 8 and win(panels, 'X') == False and win(panels, 'O') == False):msg.showinfo("Result", "Match Tied")root.destroy()####define buttons
button1 = Button(root, width=15, font=('Times 16 bold'), height=7, command=lambda: checker(1))
button1.grid(row=1, column=1)
button2 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(2))
button2.grid(row=1, column=2)
button3 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(3))
button3.grid(row=1, column=3)
button4 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(4))
button4.grid(row=2, column=1)
button5 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(5))
button5.grid(row=2, column=2)
button6 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(6))
button6.grid(row=2, column=3)
button7 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(7))
button7.grid(row=3, column=1)
button8 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(8))
button8.grid(row=3, column=2)
button9 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(9))
button9.grid(row=3, column=3)root.mainloop()
祝大家玩得开心,欢迎点赞、关注、评论,欢迎一键三联。
Python小游戏(XO大战)相关推荐
- Python小游戏-坦克大战(tank war)
Python小游戏-坦克大战(tank war) 前言 这款游戏一直都是我很喜欢的游戏,很童年,太经典啦!也很好玩,所以我来做一做这款游戏. 开发工具 python版本:3.7.3 相关模块:pyga ...
- python小游戏——兔鼠大战
python小游戏--兔鼠大战 一.准备环境:更改设置pip 国内镜像 在使用pycharm来制作小游戏写代码的时候需要编译环境,使用pip镜像源,由于pip管理工具安装库文件时,默认使用国外的源文件 ...
- 【Python】Python小游戏--飞机大战
一.前言 今天已经初四,舒服的在家躺尸的春节也算过去了,又要开始辛勤的(苦逼的)学习和工作了.说点题外话,今年春节的病毒疫情真的弄的人心惶惶,我也在这为国家和武汉加油,也向一线工作人员致敬,希望早日结 ...
- python小游戏——飞机大战小游戏(附源码)
写在前面的一些P话: 大家之前用python编写过飞机大战的部分代码, 只能够展示英雄飞机,背景,敌机和发射子弹, 今天把背景音乐,击毁敌机,爆炸特效,得分等等相关功能一并加入进来, 代码有点长,三百 ...
- python小游戏“植物大战僵尸”
python讨论qq群:996113038 导语: 这几天一直写爬虫,感觉写累了.本来准备写一个画画的程序的,但是想来想去没有想到合适的程序.后来想到好久没有给大家推送过游戏了.上次推送游戏还是两个星 ...
- 小甲鱼python小游戏“飞机大战”源码素材
话不多说,链接奉上. 百度网盘链接: https://pan.baidu.com/s/1KkmCqCBJ2Jq_IrewovYPAQ 提取码:43av 注:需下载Python pygame包 下载方式 ...
- c 语言500行小游戏代码,500行代码使用python写个微信小游戏飞机大战游戏.pdf
500行行代代码码使使用用python写写个个微微信信小小游游戏戏飞飞机机大大战战游游戏戏 这篇文章主要介绍了500行代码使用python写个微信小游戏飞机大战游戏,本文通过实例代码给大家介绍的非常详 ...
- python小游戏之三
猜拳游戏 Python代码实现猜拳小游戏 Python代码实现猜拳小游戏_zhangtongyuan0909的博客-CSDN博客_python猜拳游戏代码 用python中类与对象写一个猜拳游戏 用p ...
- 边玩边学,13个 Python 小游戏真有趣啊(含源码)
经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游戏,教你 ...
最新文章
- 清华NLP实验室刘知远:如何写一篇合格的NLP论文
- DOS 和 Linux 常用命令的对比
- bartender的安全策略不允许指定的用户执行此操作_MongoDB用户和角色解释系列(上)...
- [Angular2 Form] Style Validation in Angular 2 Forms
- 【转】详谈for循环里面的break和continue语句
- 【宜搭客户说】宜搭帮助教育局搭建教育管理平台
- Codeforce Flea CodeForces - 32C 规律|思维
- delphi 更改DBGrid 颜色技巧
- spring 多数据源- 原理
- net 开发 【要学习】
- php自动加载基类文件
- python语音读取
- Thinkpad p15 gen1安装双系统遇到的问题
- HbuilderX配置微信开发者工具
- 自抗扰控制中的扩张状态观测器收敛性分析1
- 架构设计分布式数据结构与算法面试题(2020最新版)
- Android实现控制第三方音乐播放器暂停/播放
- docker配置加速器,快速拉取镜像
- 测试 RAM 盘和 DISK 盘的文件读写速度
- 基于OpenGL的地形建模技术的研究与实现
热门文章
- httpd开启status模块_Nginx高并发系列之二——Nginx开启ssl模块
- 3d饼图 vue_在Vue中如何使用highCharts绘制3d饼图
- python里orient_从Python访问OrientDB
- 电脑任务栏跑到右边去了_浙江电脑硬盘维修收费标准,请看
- GAN生成对抗网络-text to image原理与基本实现-文字转图像-11
- Mysqldump备份和恢复
- spring源码解读之 JdbcTemplate源码
- 阿里面试经历JAVA总结
- 00084_Map接口
- -webkit-scrollbar