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脚本操作文件的小示例分享
Aug 27 Python
python使用str &amp; repr转换字符串
Oct 13 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
python如何使用unittest测试接口
Apr 04 Python
python 日期排序的实例代码
Jul 11 Python
Django forms表单 select下拉框的传值实例
Jul 19 Python
django实现类似触发器的功能
Nov 15 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 Python
如何用python开发Zeroc Ice应用
Jan 29 Python
详解PyTorch模型保存与加载
Apr 28 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根据日期判断星座的函数分享
2014/02/13 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
PHP经典面试题集锦
2015/03/19 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
python如何制作缩略图
2019/04/30 Python
Python对wav文件的重采样实例
2020/02/25 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
物业保安主管岗位职责
2013/12/25 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
企业愿景口号
2015/12/25 职场文书
高中班主任心得体会
2016/01/07 职场文书
2019学生会干事辞职信
2019/06/27 职场文书