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 mysqldb连接数据库
Mar 16 Python
python通过urllib2爬网页上种子下载示例
Feb 24 Python
python里将list中元素依次向前移动一位
Sep 12 Python
详解python的几种标准输出重定向方式
Aug 15 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
Python实现爬取需要登录的网站完整示例
Aug 19 Python
对python中的logger模块全面讲解
Apr 28 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 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
自己前几天写的无限分类类
2007/02/14 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php中Smarty模板初体验
2011/08/08 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
pandas数值计算与排序方法
2018/04/12 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
python异常触发及自定义异常类解析
2019/08/06 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
应届生财务管理求职信
2013/11/06 职场文书
七年级历史教学反思
2014/02/05 职场文书
企业形象策划方案
2014/05/29 职场文书
应届生面试求职信
2014/07/02 职场文书
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL