pyqt5写的井字棋

用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_())
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值