pyqt5实现井字棋的示例代码
本文介绍的是利用pyqt5实现井字棋,下面话不多说了,来一起看看详细的介绍
作者:袁少泽
代码如下(示例):
importrandom
importsys
importtime
fromPyQt5.QtCoreimport*
fromPyQt5.QtWidgetsimport*
start=time.time()
classUi_Form(object):
defsetupUi(self,Form):
Form.setObjectName("Form")
Form.resize(415,346)
self.label_3=QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(30,290,241,20))
self.label_3.setObjectName("label_3")
self.pushButton_10=QtWidgets.QPushButton(Form)
self.pushButton_10.setGeometry(QtCore.QRect(210,310,75,23))
self.pushButton_10.setCheckable(False)
self.pushButton_10.setDefault(False)
self.pushButton_10.setObjectName("pushButton_10")
self.label_2=QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(20,260,241,20))
self.label_2.setObjectName("label_2")
self.label=QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(290,10,111,31))
self.label.setObjectName("label")
self.layoutWidget=QtWidgets.QWidget(Form)
self.layoutWidget.setGeometry(QtCore.QRect(70,40,191,191))
self.layoutWidget.setObjectName("layoutWidget")
self.gridLayout=QtWidgets.QGridLayout(self.layoutWidget)
self.gridLayout.setContentsMargins(0,0,0,0)
self.gridLayout.setObjectName("gridLayout")
self.pushButton=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton.setEnabled(True)
self.pushButton.setToolTip("")
self.pushButton.setText("")
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton,0,0,1,1)
self.pushButton_4=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_4.setText("")
self.pushButton_4.setObjectName("pushButton_4")
self.gridLayout.addWidget(self.pushButton_4,0,1,1,1)
self.pushButton_7=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_7.setEnabled(True)
self.pushButton_7.setText("")
self.pushButton_7.setObjectName("pushButton_7")
self.gridLayout.addWidget(self.pushButton_7,0,2,1,1)
self.pushButton_2=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_2.setText("")
self.pushButton_2.setObjectName("pushButton_2")
self.gridLayout.addWidget(self.pushButton_2,1,0,1,1)
self.pushButton_5=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_5.setText("")
self.pushButton_5.setObjectName("pushButton_5")
self.gridLayout.addWidget(self.pushButton_5,1,1,1,1)
self.pushButton_8=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_8.setText("")
self.pushButton_8.setObjectName("pushButton_8")
self.gridLayout.addWidget(self.pushButton_8,1,2,1,1)
self.pushButton_3=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_3.setText("")
self.pushButton_3.setObjectName("pushButton_3")
self.gridLayout.addWidget(self.pushButton_3,2,0,1,1)
self.pushButton_6=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_6.setText("")
self.pushButton_6.setObjectName("pushButton_6")
self.gridLayout.addWidget(self.pushButton_6,2,1,1,1)
self.pushButton_9=QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_9.setText("")
self.pushButton_9.setObjectName("pushButton_9")
self.gridLayout.addWidget(self.pushButton_9,2,2,1,1)
self.label_4=QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(70,10,131,21))
self.label_4.setObjectName("label_4")
self.pushButton_11=QtWidgets.QPushButton(Form)
self.pushButton_11.setGeometry(QtCore.QRect(300,310,75,23))
self.pushButton_11.setObjectName("pushButton_11")
self.retranslateUi(Form)
self.pushButton_11.clicked.connect(Form.close)
QtCore.QMetaObject.connectSlotsByName(Form)
defretranslateUi(self,Form):
_translate=QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form","Form"))
self.label_3.setText(_translate("Form","TextLabel"))
self.pushButton_10.setText(_translate("Form","重新开始"))
self.label_2.setText(_translate("Form","TextLabel"))
self.label.setText(_translate("Form","TextLabel"))
self.label_4.setText(_translate("Form","TextLabel"))
self.pushButton_11.setText(_translate("Form","退出"))
fromPyQt5importQtCore,QtWidgets
classUi_MainWindow(object):
defsetupUi(self,MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(294,167)
self.centralwidget=QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label=QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(110,20,161,31))
self.label.setObjectName("label")
self.pushButton=QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(50,80,75,23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2=QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(180,80,75,23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3=QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(270,10,21,23))
self.pushButton_3.setObjectName("pushButton_3")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar=QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.pushButton_3.clicked.connect(MainWindow.close)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
defretranslateUi(self,MainWindow):
_translate=QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow","井字棋-模式选择"))
self.label.setText(_translate("MainWindow","模式选择"))
self.pushButton.setText(_translate("MainWindow","双人"))
self.pushButton_2.setText(_translate("MainWindow","单人"))
self.pushButton_3.setText(_translate("MainWindow","X"))
classQIPAN():
def__init__(self):
self.qi11=''
self.qi12=''
self.qi13=''
self.qi21=''
self.qi22=''
self.qi23=''
self.qi31=''
self.qi32=''
self.qi33=''
qipan=QIPAN()
classdanren(QWidget):
def__init__(self):
super(danren,self).__init__()
self.ui=Ui_Form()
self.ui.setupUi(self)
self.setWindowTitle('单人模式')
self.initUI()
self.ui.label_4.setText("单人模式")
self.time=0
self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)###
definitUI(self):
self.ui.pushButton.setText(qipan.qi11)
self.ui.pushButton_2.setText(qipan.qi12)
self.ui.pushButton_3.setText(qipan.qi13)
self.ui.pushButton_4.setText(qipan.qi21)
self.ui.pushButton_5.setText(qipan.qi22)
self.ui.pushButton_6.setText(qipan.qi23)
self.ui.pushButton_7.setText(qipan.qi31)
self.ui.pushButton_8.setText(qipan.qi32)
self.ui.pushButton_9.setText(qipan.qi33)
self.ui.pushButton.setToolTip('pushButton/qi11')
self.ui.pushButton_2.setToolTip('pushButton_2/qi12')
self.ui.pushButton_3.setToolTip('pushButton_3/qi13')
self.ui.pushButton_4.setToolTip('pushButton_4/qi21')
self.ui.pushButton_5.setToolTip('pushButton_5/qi22')
self.ui.pushButton_6.setToolTip('pushButton_6/qi23')
self.ui.pushButton_7.setToolTip('pushButton_7/qi31')
self.ui.pushButton_8.setToolTip('pushButton_8/qi32')
self.ui.pushButton_9.setToolTip('pushButton_9/qi33')
self.ui.label.setText('')
self.ui.label_2.setText('当前为O玩家VS电脑')
self.ui.label_3.setText('')
self.timer=QTimer()
self.timer.timeout.connect(self.showtime)
self.startTimer()
self.CONNECT()
defCONNECT(self):
self.ui.pushButton.clicked.connect(self.change)
self.ui.pushButton_2.clicked.connect(self.change2)
self.ui.pushButton_3.clicked.connect(self.change3)
self.ui.pushButton_4.clicked.connect(self.change4)
self.ui.pushButton_5.clicked.connect(self.change5)
self.ui.pushButton_6.clicked.connect(self.change6)
self.ui.pushButton_7.clicked.connect(self.change7)
self.ui.pushButton_8.clicked.connect(self.change8)
self.ui.pushButton_9.clicked.connect(self.change9)
self.ui.pushButton.clicked.connect(self.PANDUAN)
self.ui.pushButton_2.clicked.connect(self.PANDUAN)
self.ui.pushButton_3.clicked.connect(self.PANDUAN)
self.ui.pushButton_4.clicked.connect(self.PANDUAN)
self.ui.pushButton_5.clicked.connect(self.PANDUAN)
self.ui.pushButton_6.clicked.connect(self.PANDUAN)
self.ui.pushButton_7.clicked.connect(self.PANDUAN)
self.ui.pushButton_8.clicked.connect(self.PANDUAN)
self.ui.pushButton_9.clicked.connect(self.PANDUAN)
self.ui.pushButton_10.clicked.connect(self.HUANYUAN)
self.ui.pushButton_11.clicked.connect(self.HUANYUAN)
defchange(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton.setText(a)
else:
a="O"
self.ui.pushButton.setText(a)
self.ui.pushButton.setEnabled(False)
ifself.time<9:
self.suiji()
defchange2(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_2.setText(a)
else:
a="O"
self.ui.pushButton_2.setText(a)
self.ui.pushButton_2.setEnabled(False)
ifself.time<9:
self.suiji()
defchange3(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_3.setText(a)
else:
a="O"
self.ui.pushButton_3.setText(a)
self.ui.pushButton_3.setEnabled(False)
ifself.time<9:
self.suiji()
defchange4(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_4.setText(a)
else:
a="O"
self.ui.pushButton_4.setText(a)
self.ui.pushButton_4.setEnabled(False)
ifself.time<9:
self.suiji()
defchange5(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_5.setText(a)
else:
a="O"
self.ui.pushButton_5.setText(a)
self.ui.pushButton_5.setEnabled(False)
ifself.time<9:
self.suiji()
defchange6(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_6.setText(a)
else:
a="O"
self.ui.pushButton_6.setText(a)
self.ui.pushButton_6.setEnabled(False)
ifself.time<9:
self.suiji()
defchange7(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_7.setText(a)
else:
a="O"
self.ui.pushButton_7.setText(a)
self.ui.pushButton_7.setEnabled(False)
ifself.time<9:
self.suiji()
defchange8(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_8.setText(a)
else:
a="O"
self.ui.pushButton_8.setText(a)
self.ui.pushButton_8.setEnabled(False)
ifself.time<9:
self.suiji()
defchange9(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton_9.setText(a)
else:
a="O"
self.ui.pushButton_9.setText(a)
self.ui.pushButton_9.setEnabled(False)
ifself.time<9:
self.suiji()
defshowtime(self):
end=time.time()
self.ui.label.setText(f'游戏开始{int(end-start)}秒')
defPANDUAN(self):
ifself.time<9:
if(
self.ui.pushButton.text()=='X'andself.ui.pushButton_2.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_4.text()=='X'andself.ui.pushButton_7.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_4.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_6.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton_3.text()=='X'andself.ui.pushButton_6.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X'):
self.ui.label_3.setText("电脑获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
elif(
self.ui.pushButton.text()=='O'andself.ui.pushButton_2.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_4.text()=='O'andself.ui.pushButton_7.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_9.text()=='O')\
or(
self.ui.pushButton_4.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_6.text()=='O')\
or(
self.ui.pushButton_7.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_3.text()=='O'andself.ui.pushButton_6.text()=='O'andself.ui.pushButton_9.text()=='O'):
self.ui.label_3.setText("O玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
else:
self.ui.label_3.setText("暂未分出胜负")
elifself.time==9:
if(
self.ui.pushButton.text()=='X'andself.ui.pushButton_2.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_4.text()=='X'andself.ui.pushButton_7.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_4.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_6.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton_3.text()=='X'andself.ui.pushButton_6.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X'):
self.ui.label_3.setText("X玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
elif(
self.ui.pushButton.text()=='O'andself.ui.pushButton_2.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_4.text()=='O'andself.ui.pushButton_7.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_9.text()=='O')\
or(
self.ui.pushButton_4.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_6.text()=='O')\
or(
self.ui.pushButton_7.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_3.text()=='O'andself.ui.pushButton_6.text()=='O'andself.ui.pushButton_9.text()=='O'):
self.ui.label_3.setText("O玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
else:
self.ui.label_3.setText("平局")
self.time=0
defHUANYUAN(self):
self.ui.label_2.setText('当前为O玩家回合')
self.ui.pushButton.setText(qipan.qi11)
self.ui.pushButton_2.setText(qipan.qi12)
self.ui.pushButton_3.setText(qipan.qi13)
self.ui.pushButton_4.setText(qipan.qi21)
self.ui.pushButton_5.setText(qipan.qi22)
self.ui.pushButton_6.setText(qipan.qi23)
self.ui.pushButton_7.setText(qipan.qi31)
self.ui.pushButton_8.setText(qipan.qi32)
self.ui.pushButton_9.setText(qipan.qi33)
self.ui.pushButton.setEnabled(True)
self.ui.pushButton_2.setEnabled(True)
self.ui.pushButton_3.setEnabled(True)
self.ui.pushButton_4.setEnabled(True)
self.ui.pushButton_5.setEnabled(True)
self.ui.pushButton_6.setEnabled(True)
self.ui.pushButton_7.setEnabled(True)
self.ui.pushButton_8.setEnabled(True)
self.ui.pushButton_9.setEnabled(True)
self.time=0
defsuiji(self):
Truelabel=[]
labels=[self.ui.pushButton,self.ui.pushButton_2,self.ui.pushButton_3,
self.ui.pushButton_4,self.ui.pushButton_5,self.ui.pushButton_6,
self.ui.pushButton_7,self.ui.pushButton_8,self.ui.pushButton_9]
forlabelinlabels:
iflabel.isEnabled()==True:
Truelabel.append(label)
luckylabel=random.choice(Truelabel)
ifluckylabel==self.ui.pushButton:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
self.ui.pushButton.setText(a)
else:
a="O"
self.ui.pushButton.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_2:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_2.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_2.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_2.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_3:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_3.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_3.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_3.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_4:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_4.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_4.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_4.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_5:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b="O"
self.ui.pushButton_5.setText(a)
else:
a="O"
b="X"
self.ui.pushButton_5.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_5.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_6:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_6.setText(a)
else:
a="O"
b="X"
self.ui.pushButton_6.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_6.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_7:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_7.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_7.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_7.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_8:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_8.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_8.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_8.setEnabled(False)
self.PANDUAN()
elifluckylabel==self.ui.pushButton_9:
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_9.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_9.setText(a)
self.ui.label_2.setText('当前为o玩家VS电脑')
self.ui.pushButton_9.setEnabled(False)
self.PANDUAN()
defstartTimer(self):
self.timer.start(1000)
classshuangren(QWidget):
def__init__(self):
super(shuangren,self).__init__()
self.ui=Ui_Form()
self.ui.setupUi(self)
self.setWindowTitle('双人模式')
self.ui.label_4.setText("双人模式")
self.ui.pushButton_11.clicked.connect(self.HUANYUAN)
self.initUI()
self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)
definitUI(self):
self.ui.pushButton.setText(qipan.qi11)
self.ui.pushButton_2.setText(qipan.qi12)
self.ui.pushButton_3.setText(qipan.qi13)
self.ui.pushButton_4.setText(qipan.qi21)
self.ui.pushButton_5.setText(qipan.qi22)
self.ui.pushButton_6.setText(qipan.qi23)
self.ui.pushButton_7.setText(qipan.qi31)
self.ui.pushButton_8.setText(qipan.qi32)
self.ui.pushButton_9.setText(qipan.qi33)
self.ui.pushButton.setToolTip('pushButton/qi11')
self.ui.pushButton_2.setToolTip('pushButton_2/qi12')
self.ui.pushButton_3.setToolTip('pushButton_3/qi13')
self.ui.pushButton_4.setToolTip('pushButton_4/qi21')
self.ui.pushButton_5.setToolTip('pushButton_5/qi22')
self.ui.pushButton_6.setToolTip('pushButton_6/qi23')
self.ui.pushButton_7.setToolTip('pushButton_7/qi31')
self.ui.pushButton_8.setToolTip('pushButton_8/qi32')
self.ui.pushButton_9.setToolTip('pushButton_9/qi33')
self.ui.label.setText('')
self.ui.label_2.setText('当前为O玩家回合')
self.ui.label_3.setText('')
self.timer=QTimer()
self.timer.timeout.connect(self.showtime)
self.startTimer()
self.bangding()
defbangding(self):
self.ui.pushButton.clicked.connect(self.change)
self.ui.pushButton_2.clicked.connect(self.change2)
self.ui.pushButton_3.clicked.connect(self.change3)
self.ui.pushButton_4.clicked.connect(self.change4)
self.ui.pushButton_5.clicked.connect(self.change5)
self.ui.pushButton_6.clicked.connect(self.change6)
self.ui.pushButton_7.clicked.connect(self.change7)
self.ui.pushButton_8.clicked.connect(self.change8)
self.ui.pushButton_9.clicked.connect(self.change9)
self.ui.pushButton.clicked.connect(self.PANDUAN)
self.ui.pushButton_2.clicked.connect(self.PANDUAN)
self.ui.pushButton_3.clicked.connect(self.PANDUAN)
self.ui.pushButton_4.clicked.connect(self.PANDUAN)
self.ui.pushButton_5.clicked.connect(self.PANDUAN)
self.ui.pushButton_6.clicked.connect(self.PANDUAN)
self.ui.pushButton_7.clicked.connect(self.PANDUAN)
self.ui.pushButton_8.clicked.connect(self.PANDUAN)
self.ui.pushButton_9.clicked.connect(self.PANDUAN)
self.ui.pushButton_10.clicked.connect(self.HUANYUAN)
self.time=0
defchange(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton.setText(a)
else:
a="O"
b='X'
self.ui.pushButton.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton.setEnabled(False)
defchange2(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_2.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_2.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_2.setEnabled(False)
defchange3(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_3.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_3.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_3.setEnabled(False)
defchange4(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_4.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_4.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_4.setEnabled(False)
defchange5(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b="O"
self.ui.pushButton_5.setText(a)
else:
a="O"
b="X"
self.ui.pushButton_5.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_5.setEnabled(False)
defchange6(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_6.setText(a)
else:
a="O"
b="X"
self.ui.pushButton_6.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_6.setEnabled(False)
defchange7(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_7.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_7.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_7.setEnabled(False)
defchange8(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_8.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_8.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_8.setEnabled(False)
defchange9(self):
self.time=self.time+1
if(self.time+2)%2==0:
a="X"
b='O'
self.ui.pushButton_9.setText(a)
else:
a="O"
b='X'
self.ui.pushButton_9.setText(a)
self.ui.label_2.setText(f'当前为{b}玩家回合')
self.ui.pushButton_9.setEnabled(False)
defshowtime(self):
end=time.time()
self.ui.label.setText(f'游戏开始{int(end-start)}秒')
defPANDUAN(self):
ifself.time<9:
if(
self.ui.pushButton.text()=='X'andself.ui.pushButton_2.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_4.text()=='X'andself.ui.pushButton_7.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_4.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_6.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton_3.text()=='X'andself.ui.pushButton_6.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X'):
self.ui.label_3.setText("X玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
elif(
self.ui.pushButton.text()=='O'andself.ui.pushButton_2.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_4.text()=='O'andself.ui.pushButton_7.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_9.text()=='O')\
or(
self.ui.pushButton_4.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_6.text()=='O')\
or(
self.ui.pushButton_7.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_3.text()=='O'andself.ui.pushButton_6.text()=='O'andself.ui.pushButton_9.text()=='O'):
self.ui.label_3.setText("O玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
else:
self.ui.label_3.setText("暂未分出胜负")
elifself.time==9:
if(
self.ui.pushButton.text()=='X'andself.ui.pushButton_2.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_4.text()=='X'andself.ui.pushButton_7.text()=='X')\
or(
self.ui.pushButton.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_4.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_6.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_3.text()=='X')\
or(
self.ui.pushButton_3.text()=='X'andself.ui.pushButton_6.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X'):
self.ui.label_3.setText("X玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
elif(
self.ui.pushButton.text()=='O'andself.ui.pushButton_2.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_4.text()=='O'andself.ui.pushButton_7.text()=='O')\
or(
self.ui.pushButton.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_9.text()=='O')\
or(
self.ui.pushButton_4.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_6.text()=='O')\
or(
self.ui.pushButton_7.text()=='O'andself.ui.pushButton_5.text()=='O'andself.ui.pushButton_3.text()=='O')\
or(
self.ui.pushButton_7.text()=='X'andself.ui.pushButton_8.text()=='X'andself.ui.pushButton_9.text()=='X')\
or(
self.ui.pushButton_2.text()=='X'andself.ui.pushButton_5.text()=='X'andself.ui.pushButton_8.text()=='X')\
or(
self.ui.pushButton_3.text()=='O'andself.ui.pushButton_6.text()=='O'andself.ui.pushButton_9.text()=='O'):
self.ui.label_3.setText("O玩家获胜")
self.ui.label_2.setText("结束")
self.ui.pushButton.setEnabled(False)
self.ui.pushButton_2.setEnabled(False)
self.ui.pushButton_3.setEnabled(False)
self.ui.pushButton_4.setEnabled(False)
self.ui.pushButton_5.setEnabled(False)
self.ui.pushButton_6.setEnabled(False)
self.ui.pushButton_7.setEnabled(False)
self.ui.pushButton_8.setEnabled(False)
self.ui.pushButton_9.setEnabled(False)
self.time=0
else:
self.ui.label_3.setText("平局")
self.time=0
defHUANYUAN(self):
self.ui.pushButton.setText(qipan.qi11)
self.ui.pushButton_2.setText(qipan.qi12)
self.ui.pushButton_3.setText(qipan.qi13)
self.ui.pushButton_4.setText(qipan.qi21)
self.ui.pushButton_5.setText(qipan.qi22)
self.ui.pushButton_6.setText(qipan.qi23)
self.ui.pushButton_7.setText(qipan.qi31)
self.ui.pushButton_8.setText(qipan.qi32)
self.ui.pushButton_9.setText(qipan.qi33)
self.ui.pushButton.setEnabled(True)
self.ui.pushButton_2.setEnabled(True)
self.ui.pushButton_3.setEnabled(True)
self.ui.pushButton_4.setEnabled(True)
self.ui.pushButton_5.setEnabled(True)
self.ui.pushButton_6.setEnabled(True)
self.ui.pushButton_7.setEnabled(True)
self.ui.pushButton_8.setEnabled(True)
self.ui.pushButton_9.setEnabled(True)
self.ui.label_3.setText("")
defstartTimer(self):
self.timer.start(1000)
classMODLECHOSE(QMainWindow):
def__init__(self):
super(MODLECHOSE,self).__init__()
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.caoshuang)
self.ui.pushButton_2.clicked.connect(self.caodan)
self.danwin=danren()
self.shuangwin=shuangren()
self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)#######
defcaodan(self):
self.danwin.show()
defcaoshuang(self):
self.shuangwin.show()
if__name__=='__main__':
app=QApplication(sys.argv)
main=MODLECHOSE()
main.show()
sys.exit(app.exec_())
到此这篇关于pyqt5实现井字棋的文章就介绍到这了,更多相关pyqt5井字棋内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!