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井字棋内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!