欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python实现带界面的井字棋小游戏

程序员文章站 2022-06-24 07:55:05
目录今天我们用python+tkinter安装带界面的井字棋,效果如图所示。tkinter 是 python 的标准 gui 库。python 使用 tkinter 可以快速的创建 gui 应用程序。...

今天我们用python+tkinter安装带界面的井字棋,效果如图所示

python实现带界面的井字棋小游戏

tkinter python 的标准 gui 库。python 使用 tkinter 可以快速的创建 gui 应用程序。由于 tkinter 是内置到 python 的安装包中、只要安装好 python 之后就能 import tkinter 库、而且 idle 也是用 tkinter 编写而成、对于简单的图形界面 tkinter 还是能应付自如。

pip install tkinter

1、首先安装tkinter

root= tk()
root.title('井字棋')

digits = [1,2,3,4,5,6,7,8,9]
mark = '' “
count = 0
panels = ["panel"]*10

2、初始化窗口

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)

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()

3、定义按钮

很明显上面的井字棋就是9个按钮。这里定义9个按钮。

def 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))

4、检查获胜的条件

检查获胜的条件,上面其中一种情况都是获胜的。

def checker(digit):
 global count, mark, digits
 if digit==1 and digit in digits:
  digits.remove(digit)
  if count%2==0:
   mark ='x'
   panels[digit]=mark
  elif count%2!=0:
   mark = 'o'
   panels[digit]=mar
  button1.config(text = mark)
  count = count+1
  sign = mark
  if(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()

最后这里是点击下棋,然后用win函数判断是否结束比赛赢得棋局。

到此这篇关于python实现带界面的井字棋的小游戏的文章就介绍到这了,更多相关python实现带界面的井字棋内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: python 井字棋