您好,登錄后才能下訂單哦!
本篇文章為大家展示了利用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編寫一個井字棋小游戲,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。