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 相关文章推荐
老生常谈进程线程协程那些事儿
Jul 24 Python
python如何读写csv数据
Mar 21 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 Python
python with (as)语句实例详解
Feb 04 Python
python数字类型math库原理解析
Mar 02 Python
Django ValuesQuerySet转json方式
Mar 16 Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
python实现双人五子棋(终端版)
Dec 30 Python
浅析python连接数据库的重要事项
Feb 22 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-FPM的配置与优化讲解
2019/03/15 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
理解javascript异步编程
2016/01/27 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python实现的最近最少使用算法
2015/07/10 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Django框架安装方法图文详解
2019/11/04 Python
pytorch梯度剪裁方式
2020/02/04 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python递归函数特点及原理解析
2020/03/04 Python
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
自荐信封面
2013/12/04 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
2015年新学期寄语
2015/02/26 职场文书
医院见习总结
2015/06/24 职场文书
创业计划书之物流运送
2019/09/17 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript