pyqt5實(shí)現(xiàn)井字棋的示例代碼
更新時間:2020年12月07日 12:00:13 作者:袁少澤
這篇文章主要給大家介紹了關(guān)于pyqt5實(shí)現(xiàn)井字棋的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
本文介紹的是利用pyqt5實(shí)現(xiàn)井字棋,下面話不多說了,來一起看看詳細(xì)的介紹
作者:袁少澤
代碼如下(示例):
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('當(dāng)前為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("結(jié)束")
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("結(jié)束")
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("暫未分出勝負(fù)")
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("結(jié)束")
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("結(jié)束")
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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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('當(dāng)前為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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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'當(dāng)前為玩家回合')
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("結(jié)束")
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("結(jié)束")
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("暫未分出勝負(fù)")
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("結(jié)束")
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("結(jié)束")
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_())
到此這篇關(guān)于pyqt5實(shí)現(xiàn)井字棋的文章就介紹到這了,更多相關(guān)pyqt5井字棋內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
TensorFlow神經(jīng)網(wǎng)絡(luò)構(gòu)造線性回歸模型示例教程
這篇文章主要為大家介紹了TensorFlow構(gòu)造線性回歸模型示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
這篇文章主要介紹了在 Python 中借助日志記錄庫使用 Log4j,本文解釋了什么是 log4j,它是如何工作的,以及我們?yōu)槭裁匆褂盟?,需要的朋友可以參考?/div> 2023-07-07
Python函數(shù)式編程模塊functools的使用與實(shí)踐
本文主要介紹了Python函數(shù)式編程模塊functools的使用與實(shí)踐,教你如何使用?functools.partial、functools.wraps、functools.lru_cache?和?functools.reduce,感興趣的可以了解一下2024-03-03
Python實(shí)現(xiàn)數(shù)據(jù)地址實(shí)體抽取
大家好,本篇文章主要講的是Python實(shí)現(xiàn)數(shù)據(jù)地址實(shí)體抽取,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02
Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決
這篇文章主要介紹了Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06最新評論

