pyqt5实现井字棋的示例代码


Posted in Python onDecember 07, 2020

本文介绍的是利用pyqt5实现井字棋,下面话不多说了,来一起看看详细的介绍

作者:袁少泽

代码如下(示例):

import random
import sys
import time
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
start=time.time()
class Ui_Form(object):
 def setupUi(self, Form):
 Form.setObjectName("Form")
 Form.resize(415, 346)
 self.label_3 = QtWidgets.QLabel(Form)
 self.label_3.setGeometry(QtCore.QRect(30, 290, 241, 20))
 self.label_3.setObjectName("label_3")
 self.pushButton_10 = QtWidgets.QPushButton(Form)
 self.pushButton_10.setGeometry(QtCore.QRect(210, 310, 75, 23))
 self.pushButton_10.setCheckable(False)
 self.pushButton_10.setDefault(False)
 self.pushButton_10.setObjectName("pushButton_10")
 self.label_2 = QtWidgets.QLabel(Form)
 self.label_2.setGeometry(QtCore.QRect(20, 260, 241, 20))
 self.label_2.setObjectName("label_2")
 self.label = QtWidgets.QLabel(Form)
 self.label.setGeometry(QtCore.QRect(290, 10, 111, 31))
 self.label.setObjectName("label")
 self.layoutWidget = QtWidgets.QWidget(Form)
 self.layoutWidget.setGeometry(QtCore.QRect(70, 40, 191, 191))
 self.layoutWidget.setObjectName("layoutWidget")
 self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
 self.gridLayout.setContentsMargins(0, 0, 0, 0)
 self.gridLayout.setObjectName("gridLayout")
 self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton.setEnabled(True)
 self.pushButton.setToolTip("")
 self.pushButton.setText("")
 self.pushButton.setObjectName("pushButton")
 self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)
 self.pushButton_4 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_4.setText("")
 self.pushButton_4.setObjectName("pushButton_4")
 self.gridLayout.addWidget(self.pushButton_4, 0, 1, 1, 1)
 self.pushButton_7 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_7.setEnabled(True)
 self.pushButton_7.setText("")
 self.pushButton_7.setObjectName("pushButton_7")
 self.gridLayout.addWidget(self.pushButton_7, 0, 2, 1, 1)
 self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_2.setText("")
 self.pushButton_2.setObjectName("pushButton_2")
 self.gridLayout.addWidget(self.pushButton_2, 1, 0, 1, 1)
 self.pushButton_5 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_5.setText("")
 self.pushButton_5.setObjectName("pushButton_5")
 self.gridLayout.addWidget(self.pushButton_5, 1, 1, 1, 1)
 self.pushButton_8 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_8.setText("")
 self.pushButton_8.setObjectName("pushButton_8")
 self.gridLayout.addWidget(self.pushButton_8, 1, 2, 1, 1)
 self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_3.setText("")
 self.pushButton_3.setObjectName("pushButton_3")
 self.gridLayout.addWidget(self.pushButton_3, 2, 0, 1, 1)
 self.pushButton_6 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_6.setText("")
 self.pushButton_6.setObjectName("pushButton_6")
 self.gridLayout.addWidget(self.pushButton_6, 2, 1, 1, 1)
 self.pushButton_9 = QtWidgets.QPushButton(self.layoutWidget)
 self.pushButton_9.setText("")
 self.pushButton_9.setObjectName("pushButton_9")
 self.gridLayout.addWidget(self.pushButton_9, 2, 2, 1, 1)
 self.label_4 = QtWidgets.QLabel(Form)
 self.label_4.setGeometry(QtCore.QRect(70, 10, 131, 21))
 self.label_4.setObjectName("label_4")
 self.pushButton_11 = QtWidgets.QPushButton(Form)
 self.pushButton_11.setGeometry(QtCore.QRect(300, 310, 75, 23))
 self.pushButton_11.setObjectName("pushButton_11")
 self.retranslateUi(Form)
 self.pushButton_11.clicked.connect(Form.close)
 QtCore.QMetaObject.connectSlotsByName(Form)
 def retranslateUi(self, Form):
 _translate = QtCore.QCoreApplication.translate
 Form.setWindowTitle(_translate("Form", "Form"))
 self.label_3.setText(_translate("Form", "TextLabel"))
 self.pushButton_10.setText(_translate("Form", "重新开始"))
 self.label_2.setText(_translate("Form", "TextLabel"))
 self.label.setText(_translate("Form", "TextLabel"))
 self.label_4.setText(_translate("Form", "TextLabel"))
 self.pushButton_11.setText(_translate("Form", "退出"))
from PyQt5 import QtCore, QtWidgets
class Ui_MainWindow(object):
 def setupUi(self, MainWindow):
 MainWindow.setObjectName("MainWindow")
 MainWindow.resize(294, 167)
 self.centralwidget = QtWidgets.QWidget(MainWindow)
 self.centralwidget.setObjectName("centralwidget")
 self.label = QtWidgets.QLabel(self.centralwidget)
 self.label.setGeometry(QtCore.QRect(110, 20, 161, 31))
 self.label.setObjectName("label")
 self.pushButton = QtWidgets.QPushButton(self.centralwidget)
 self.pushButton.setGeometry(QtCore.QRect(50, 80, 75, 23))
 self.pushButton.setObjectName("pushButton")
 self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
 self.pushButton_2.setGeometry(QtCore.QRect(180, 80, 75, 23))
 self.pushButton_2.setObjectName("pushButton_2")
 self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
 self.pushButton_3.setGeometry(QtCore.QRect(270, 10, 21, 23))
 self.pushButton_3.setObjectName("pushButton_3")
 MainWindow.setCentralWidget(self.centralwidget)
 self.statusbar = QtWidgets.QStatusBar(MainWindow)
 self.statusbar.setObjectName("statusbar")
 MainWindow.setStatusBar(self.statusbar)

 self.retranslateUi(MainWindow)
 self.pushButton_3.clicked.connect(MainWindow.close)
 QtCore.QMetaObject.connectSlotsByName(MainWindow)

 def retranslateUi(self, MainWindow):
 _translate = QtCore.QCoreApplication.translate
 MainWindow.setWindowTitle(_translate("MainWindow", "井字棋-模式选择"))
 self.label.setText(_translate("MainWindow", "模式选择"))
 self.pushButton.setText(_translate("MainWindow", "双人"))
 self.pushButton_2.setText(_translate("MainWindow", "单人"))
 self.pushButton_3.setText(_translate("MainWindow", "X"))
class QIPAN():
 def __init__(self):
 self.qi11 = ' '
 self.qi12 = ' '
 self.qi13 = ' '
 self.qi21 = ' '
 self.qi22 = ' '
 self.qi23 = ' '
 self.qi31 = ' '
 self.qi32 = ' '
 self.qi33 = ' '
qipan = QIPAN()
class danren(QWidget):
 def __init__(self):
 super(danren, self).__init__()
 self.ui = Ui_Form()
 self.ui.setupUi(self)
 self.setWindowTitle('单人模式')
 self.initUI()
 self.ui.label_4.setText("单人模式")
 self.time = 0
 self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)###

 def initUI(self):
 self.ui.pushButton.setText(qipan.qi11)
 self.ui.pushButton_2.setText(qipan.qi12)
 self.ui.pushButton_3.setText(qipan.qi13)
 self.ui.pushButton_4.setText(qipan.qi21)
 self.ui.pushButton_5.setText(qipan.qi22)
 self.ui.pushButton_6.setText(qipan.qi23)
 self.ui.pushButton_7.setText(qipan.qi31)
 self.ui.pushButton_8.setText(qipan.qi32)
 self.ui.pushButton_9.setText(qipan.qi33)
 self.ui.pushButton.setToolTip('pushButton/qi11')
 self.ui.pushButton_2.setToolTip('pushButton_2/qi12')
 self.ui.pushButton_3.setToolTip('pushButton_3/qi13')
 self.ui.pushButton_4.setToolTip('pushButton_4/qi21')
 self.ui.pushButton_5.setToolTip('pushButton_5/qi22')
 self.ui.pushButton_6.setToolTip('pushButton_6/qi23')
 self.ui.pushButton_7.setToolTip('pushButton_7/qi31')
 self.ui.pushButton_8.setToolTip('pushButton_8/qi32')
 self.ui.pushButton_9.setToolTip('pushButton_9/qi33')
 self.ui.label.setText('')
 self.ui.label_2.setText('当前为O玩家VS电脑')
 self.ui.label_3.setText('')
 self.timer = QTimer()
 self.timer.timeout.connect(self.showtime)
 self.startTimer()
 self.CONNECT()
 def CONNECT(self):
 self.ui.pushButton.clicked.connect(self.change)
 self.ui.pushButton_2.clicked.connect(self.change2)
 self.ui.pushButton_3.clicked.connect(self.change3)
 self.ui.pushButton_4.clicked.connect(self.change4)
 self.ui.pushButton_5.clicked.connect(self.change5)
 self.ui.pushButton_6.clicked.connect(self.change6)
 self.ui.pushButton_7.clicked.connect(self.change7)
 self.ui.pushButton_8.clicked.connect(self.change8)
 self.ui.pushButton_9.clicked.connect(self.change9)
 self.ui.pushButton.clicked.connect(self.PANDUAN)
 self.ui.pushButton_2.clicked.connect(self.PANDUAN)
 self.ui.pushButton_3.clicked.connect(self.PANDUAN)
 self.ui.pushButton_4.clicked.connect(self.PANDUAN)
 self.ui.pushButton_5.clicked.connect(self.PANDUAN)
 self.ui.pushButton_6.clicked.connect(self.PANDUAN)
 self.ui.pushButton_7.clicked.connect(self.PANDUAN)
 self.ui.pushButton_8.clicked.connect(self.PANDUAN)
 self.ui.pushButton_9.clicked.connect(self.PANDUAN)
 self.ui.pushButton_10.clicked.connect(self.HUANYUAN)
 self.ui.pushButton_11.clicked.connect(self.HUANYUAN)
 def change(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton.setText(a)
 else:
  a = "O"
  self.ui.pushButton.setText(a)
 self.ui.pushButton.setEnabled(False)
 if self.time < 9:
  self.suiji()
 def change2(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_2.setText(a)
 else:
  a = "O"
  self.ui.pushButton_2.setText(a)
 self.ui.pushButton_2.setEnabled(False)
 if self.time < 9:
  self.suiji()
 def change3(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_3.setText(a)
 else:
  a = "O"
  self.ui.pushButton_3.setText(a)
 self.ui.pushButton_3.setEnabled(False)
 if self.time<9:
  self.suiji()
 def change4(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_4.setText(a)
 else:
  a = "O"
  self.ui.pushButton_4.setText(a)
 self.ui.pushButton_4.setEnabled(False)
 if self.time < 9:
  self.suiji()
 def change5(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_5.setText(a)
 else:
  a = "O"
  self.ui.pushButton_5.setText(a)
 self.ui.pushButton_5.setEnabled(False)
 if self.time < 9:
  self.suiji()
 def change6(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_6.setText(a)
 else:
  a = "O"
  self.ui.pushButton_6.setText(a)
 self.ui.pushButton_6.setEnabled(False)
 if self.time < 9:
  self.suiji()
 def change7(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_7.setText(a)
 else:
  a = "O"
  self.ui.pushButton_7.setText(a)
 self.ui.pushButton_7.setEnabled(False)
 if self.time<9:
  self.suiji()
 def change8(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_8.setText(a)
 else:
  a = "O"
  self.ui.pushButton_8.setText(a)
 self.ui.pushButton_8.setEnabled(False)
 if self.time<9:
  self.suiji()
 def change9(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton_9.setText(a)
 else:
  a = "O"
  self.ui.pushButton_9.setText(a)
 self.ui.pushButton_9.setEnabled(False)
 if self.time<9:
  self.suiji()
 def showtime(self):
 end = time.time()
 self.ui.label.setText(f'游戏开始{int(end - start)}秒')
 def PANDUAN(self):
 if self.time<9:
  if (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X'):
  self.ui.label_3.setText("电脑获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time=0
  elif (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \
   or (
   self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.ui.pushButton_9.text() == 'O'):
  self.ui.label_3.setText("O玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time=0
  else:
  self.ui.label_3.setText("暂未分出胜负")
 elif self.time==9:
  if (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X'):
  self.ui.label_3.setText("X玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time=0
  elif (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \
   or (
   self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.ui.pushButton_9.text() == 'O'):
  self.ui.label_3.setText("O玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time=0
  else:
  self.ui.label_3.setText("平局")
  self.time=0
 def HUANYUAN(self):
 self.ui.label_2.setText('当前为O玩家回合')
 self.ui.pushButton.setText(qipan.qi11)
 self.ui.pushButton_2.setText(qipan.qi12)
 self.ui.pushButton_3.setText(qipan.qi13)
 self.ui.pushButton_4.setText(qipan.qi21)
 self.ui.pushButton_5.setText(qipan.qi22)
 self.ui.pushButton_6.setText(qipan.qi23)
 self.ui.pushButton_7.setText(qipan.qi31)
 self.ui.pushButton_8.setText(qipan.qi32)
 self.ui.pushButton_9.setText(qipan.qi33)
 self.ui.pushButton.setEnabled(True)
 self.ui.pushButton_2.setEnabled(True)
 self.ui.pushButton_3.setEnabled(True)
 self.ui.pushButton_4.setEnabled(True)
 self.ui.pushButton_5.setEnabled(True)
 self.ui.pushButton_6.setEnabled(True)
 self.ui.pushButton_7.setEnabled(True)
 self.ui.pushButton_8.setEnabled(True)
 self.ui.pushButton_9.setEnabled(True)
 self.time=0
 def suiji(self):
 Truelabel=[]
 labels=[self.ui.pushButton,self.ui.pushButton_2,self.ui.pushButton_3,
  self.ui.pushButton_4,self.ui.pushButton_5,self.ui.pushButton_6,
  self.ui.pushButton_7,self.ui.pushButton_8,self.ui.pushButton_9]
 for label in labels:
  if label.isEnabled()==True:
  Truelabel.append(label)
 luckylabel=random.choice(Truelabel)
 if luckylabel==self.ui.pushButton:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  self.ui.pushButton.setText(a)
  else:
  a = "O"
  self.ui.pushButton.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton.setEnabled(False)
  self.PANDUAN()
 elif luckylabel==self.ui.pushButton_2:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_2.setText(a)
  else:
  a = "O"
  b = 'X'
  self.ui.pushButton_2.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_2.setEnabled(False)
  self.PANDUAN()
 elif luckylabel == self.ui.pushButton_3:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_3.setText(a)
  else:
  a = "O"
  b = 'X'
  self.ui.pushButton_3.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_3.setEnabled(False)
  self.PANDUAN()
 elif luckylabel==self.ui.pushButton_4:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_4.setText(a)
  else:
  a = "O"
  b = 'X'
  self.ui.pushButton_4.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_4.setEnabled(False)
  self.PANDUAN()
 elif luckylabel==self.ui.pushButton_5:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = "O"
  self.ui.pushButton_5.setText(a)
  else:
  a = "O"
  b = "X"
  self.ui.pushButton_5.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_5.setEnabled(False)
  self.PANDUAN()
 elif luckylabel==self.ui.pushButton_6:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_6.setText(a)
  else:
  a = "O"
  b = "X"
  self.ui.pushButton_6.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_6.setEnabled(False)
  self.PANDUAN()
 elif luckylabel==self.ui.pushButton_7:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_7.setText(a)
  else:
  a = "O"
  b = 'X'
  self.ui.pushButton_7.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_7.setEnabled(False)
  self.PANDUAN()
 elif luckylabel == self.ui.pushButton_8:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_8.setText(a)
  else:
  a = "O"
  b = 'X'
  self.ui.pushButton_8.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_8.setEnabled(False)
  self.PANDUAN()
 elif luckylabel == self.ui.pushButton_9:
  self.time = self.time + 1
  if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_9.setText(a)
  else:
  a = "O"
  b = 'X'
  self.ui.pushButton_9.setText(a)
  self.ui.label_2.setText('当前为o玩家VS电脑')
  self.ui.pushButton_9.setEnabled(False)
  self.PANDUAN()
 def startTimer(self):
 self.timer.start(1000)
class shuangren(QWidget):
 def __init__(self):
 super(shuangren, self).__init__()
 self.ui = Ui_Form()
 self.ui.setupUi(self)
 self.setWindowTitle('双人模式')
 self.ui.label_4.setText("双人模式")
 self.ui.pushButton_11.clicked.connect(self.HUANYUAN)
 self.initUI()
 self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)
 def initUI(self):
 self.ui.pushButton.setText(qipan.qi11)
 self.ui.pushButton_2.setText(qipan.qi12)
 self.ui.pushButton_3.setText(qipan.qi13)
 self.ui.pushButton_4.setText(qipan.qi21)
 self.ui.pushButton_5.setText(qipan.qi22)
 self.ui.pushButton_6.setText(qipan.qi23)
 self.ui.pushButton_7.setText(qipan.qi31)
 self.ui.pushButton_8.setText(qipan.qi32)
 self.ui.pushButton_9.setText(qipan.qi33)
 self.ui.pushButton.setToolTip('pushButton/qi11')
 self.ui.pushButton_2.setToolTip('pushButton_2/qi12')
 self.ui.pushButton_3.setToolTip('pushButton_3/qi13')
 self.ui.pushButton_4.setToolTip('pushButton_4/qi21')
 self.ui.pushButton_5.setToolTip('pushButton_5/qi22')
 self.ui.pushButton_6.setToolTip('pushButton_6/qi23')
 self.ui.pushButton_7.setToolTip('pushButton_7/qi31')
 self.ui.pushButton_8.setToolTip('pushButton_8/qi32')
 self.ui.pushButton_9.setToolTip('pushButton_9/qi33')
 self.ui.label.setText('')
 self.ui.label_2.setText('当前为O玩家回合')
 self.ui.label_3.setText('')
 self.timer = QTimer()
 self.timer.timeout.connect(self.showtime)
 self.startTimer()
 self.bangding()
 def bangding(self):
 self.ui.pushButton.clicked.connect(self.change)
 self.ui.pushButton_2.clicked.connect(self.change2)
 self.ui.pushButton_3.clicked.connect(self.change3)
 self.ui.pushButton_4.clicked.connect(self.change4)
 self.ui.pushButton_5.clicked.connect(self.change5)
 self.ui.pushButton_6.clicked.connect(self.change6)
 self.ui.pushButton_7.clicked.connect(self.change7)
 self.ui.pushButton_8.clicked.connect(self.change8)
 self.ui.pushButton_9.clicked.connect(self.change9)
 self.ui.pushButton.clicked.connect(self.PANDUAN)
 self.ui.pushButton_2.clicked.connect(self.PANDUAN)
 self.ui.pushButton_3.clicked.connect(self.PANDUAN)
 self.ui.pushButton_4.clicked.connect(self.PANDUAN)
 self.ui.pushButton_5.clicked.connect(self.PANDUAN)
 self.ui.pushButton_6.clicked.connect(self.PANDUAN)
 self.ui.pushButton_7.clicked.connect(self.PANDUAN)
 self.ui.pushButton_8.clicked.connect(self.PANDUAN)
 self.ui.pushButton_9.clicked.connect(self.PANDUAN)
 self.ui.pushButton_10.clicked.connect(self.HUANYUAN)
 self.time = 0
 def change(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton.setEnabled(False)
 def change2(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_2.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton_2.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_2.setEnabled(False)
 def change3(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_3.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton_3.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_3.setEnabled(False)
 def change4(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_4.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton_4.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_4.setEnabled(False)
 def change5(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = "O"
  self.ui.pushButton_5.setText(a)
 else:
  a = "O"
  b = "X"
  self.ui.pushButton_5.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_5.setEnabled(False)
 def change6(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_6.setText(a)
 else:
  a = "O"
  b = "X"
  self.ui.pushButton_6.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_6.setEnabled(False)
 def change7(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_7.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton_7.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_7.setEnabled(False)
 def change8(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_8.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton_8.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_8.setEnabled(False)
 def change9(self):
 self.time = self.time + 1
 if (self.time + 2) % 2 == 0:
  a = "X"
  b = 'O'
  self.ui.pushButton_9.setText(a)
 else:
  a = "O"
  b = 'X'
  self.ui.pushButton_9.setText(a)
 self.ui.label_2.setText(f'当前为{b}玩家回合')
 self.ui.pushButton_9.setEnabled(False)
 def showtime(self):
 end = time.time()
 self.ui.label.setText(f'游戏开始{int(end - start)}秒')

 def PANDUAN(self):
 if self.time < 9:
  if (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X'):
  self.ui.label_3.setText("X玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time = 0
  elif (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \
   or (
   self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.ui.pushButton_9.text() == 'O'):
  self.ui.label_3.setText("O玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time = 0
  else:
  self.ui.label_3.setText("暂未分出胜负")
 elif self.time == 9:
  if (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_7.text() == 'X') \
   or (
   self.ui.pushButton.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_4.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_6.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_3.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'X' and self.ui.pushButton_6.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X'):
  self.ui.label_3.setText("X玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time = 0
  elif (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_2.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_7.text() == 'O') \
   or (
   self.ui.pushButton.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_9.text() == 'O') \
   or (
   self.ui.pushButton_4.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_6.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'O' and self.ui.pushButton_5.text() == 'O' and self.ui.pushButton_3.text() == 'O') \
   or (
   self.ui.pushButton_7.text() == 'X' and self.ui.pushButton_8.text() == 'X' and self.ui.pushButton_9.text() == 'X') \
   or (
   self.ui.pushButton_2.text() == 'X' and self.ui.pushButton_5.text() == 'X' and self.ui.pushButton_8.text() == 'X') \
   or (
   self.ui.pushButton_3.text() == 'O' and self.ui.pushButton_6.text() == 'O' and self.ui.pushButton_9.text() == 'O'):
  self.ui.label_3.setText("O玩家获胜")
  self.ui.label_2.setText("结束")
  self.ui.pushButton.setEnabled(False)
  self.ui.pushButton_2.setEnabled(False)
  self.ui.pushButton_3.setEnabled(False)
  self.ui.pushButton_4.setEnabled(False)
  self.ui.pushButton_5.setEnabled(False)
  self.ui.pushButton_6.setEnabled(False)
  self.ui.pushButton_7.setEnabled(False)
  self.ui.pushButton_8.setEnabled(False)
  self.ui.pushButton_9.setEnabled(False)
  self.time = 0
  else:
  self.ui.label_3.setText("平局")
  self.time = 0
 def HUANYUAN(self):
 self.ui.pushButton.setText(qipan.qi11)
 self.ui.pushButton_2.setText(qipan.qi12)
 self.ui.pushButton_3.setText(qipan.qi13)
 self.ui.pushButton_4.setText(qipan.qi21)
 self.ui.pushButton_5.setText(qipan.qi22)
 self.ui.pushButton_6.setText(qipan.qi23)
 self.ui.pushButton_7.setText(qipan.qi31)
 self.ui.pushButton_8.setText(qipan.qi32)
 self.ui.pushButton_9.setText(qipan.qi33)
 self.ui.pushButton.setEnabled(True)
 self.ui.pushButton_2.setEnabled(True)
 self.ui.pushButton_3.setEnabled(True)
 self.ui.pushButton_4.setEnabled(True)
 self.ui.pushButton_5.setEnabled(True)
 self.ui.pushButton_6.setEnabled(True)
 self.ui.pushButton_7.setEnabled(True)
 self.ui.pushButton_8.setEnabled(True)
 self.ui.pushButton_9.setEnabled(True)
 self.ui.label_3.setText("")
 def startTimer(self):
 self.timer.start(1000)
class MODLECHOSE(QMainWindow):
 def __init__(self):
 super(MODLECHOSE,self).__init__()
 self.ui=Ui_MainWindow()
 self.ui.setupUi(self)
 self.ui.pushButton.clicked.connect(self.caoshuang)
 self.ui.pushButton_2.clicked.connect(self.caodan)
 self.danwin = danren()
 self.shuangwin = shuangren()
 self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)#######

 def caodan(self):
  self.danwin.show()
 def caoshuang(self):
  self.shuangwin.show()
if __name__ == '__main__':
 app = QApplication(sys.argv)
 main = MODLECHOSE()
 main.show()
 sys.exit(app.exec_())

到此这篇关于pyqt5实现井字棋的文章就介绍到这了,更多相关pyqt5井字棋内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中黄金分割法实现方法
May 06 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
python实现redis三种cas事务操作
Dec 19 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
python gdal安装与简单使用
Aug 01 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 #Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 #Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 #Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 #Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 #Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 #Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 #Python
You might like
PHP 文件上传全攻略
2010/04/28 PHP
PHP中PDO的错误处理
2011/09/04 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
php异常处理捕获错误整理
2019/09/23 PHP
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
浅谈js闭包理解
2019/04/01 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python3基础之基本运算符概述
2014/08/13 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
简单了解python数组的基本操作
2019/11/26 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
python简单实现9宫格图片实例
2020/09/03 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
党的生日活动方案
2014/08/15 职场文书
软件测试专业推荐信
2014/09/18 职场文书
同学聚会感言一句话
2015/07/30 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL