本文介绍的是利用pyqt5实现井字棋,下面话不多说了,来一起看看详细的介绍
作者:袁少泽
代码如下(示例):
import random import sys import time from PyQt5.QtCore import * from PyQt5.QtWidgets import * start=time.time() class Ui_Form(object): def setupUi(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) def retranslateUi(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", "退出")) from PyQt5 import QtCore, QtWidgets class Ui_MainWindow(object): def setupUi(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) def retranslateUi(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")) class QIPAN(): def __init__(self): self.qi11 = ' ' self.qi12 = ' ' self.qi13 = ' ' self.qi21 = ' ' self.qi22 = ' ' self.qi23 = ' ' self.qi31 = ' ' self.qi32 = ' ' self.qi33 = ' ' qipan = QIPAN() class danren(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)### def initUI(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() def CONNECT(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) def change(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) if self.time < 9: self.suiji() def change2(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) if self.time < 9: self.suiji() def change3(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) if self.time<9: self.suiji() def change4(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) if self.time < 9: self.suiji() def change5(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) if self.time < 9: self.suiji() def change6(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) if self.time < 9: self.suiji() def change7(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) if self.time<9: self.suiji() def change8(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) if self.time<9: self.suiji() def change9(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) if self.time<9: self.suiji() def showtime(self): end = time.time() self.ui.label.setText(f'游戏开始{int(end - start)}秒') def PANDUAN(self): if self.time<9: if ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.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' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \ or ( self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.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("暂未分出胜负") elif self.time==9: if ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.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' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \ or ( self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.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 def HUANYUAN(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 def suiji(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] for label in labels: if label.isEnabled()==True: Truelabel.append(label) luckylabel=random.choice(Truelabel) if luckylabel==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() elif luckylabel==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() elif luckylabel == 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() elif luckylabel==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() elif luckylabel==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() elif luckylabel==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() elif luckylabel==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() elif luckylabel == 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() elif luckylabel == 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() def startTimer(self): self.timer.start(1000) class shuangren(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) def initUI(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() def bangding(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 def change(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) def change2(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) def change3(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) def change4(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) def change5(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) def change6(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) def change7(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) def change8(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) def change9(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) def showtime(self): end = time.time() self.ui.label.setText(f'游戏开始{int(end - start)}秒') def PANDUAN(self): if self.time < 9: if ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.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' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \ or ( self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.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("暂未分出胜负") elif self.time == 9: if ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \ or ( self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.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' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \ or ( self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \ or ( self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \ or ( self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \ or ( self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \ or ( self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.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 def HUANYUAN(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("") def startTimer(self): self.timer.start(1000) class MODLECHOSE(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)####### def caodan(self): self.danwin.show() def caoshuang(self): self.shuangwin.show() if __name__ == '__main__': app = QApplication(sys.argv) main = MODLECHOSE() main.show() sys.exit(app.exec_())
到此这篇关于pyqt5实现井字棋的文章就介绍到这了,更多相关pyqt5井字棋内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!
- 本文固定链接: https://zxbcw.cn/post/201590/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)