python+pyqt 5 24 시 작은 게임 실현

16261 단어 python24 시 게임
본 논문 의 사례 는 python 이 24 시 게임 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
설명:한 패 중 A,J,Q,K 는 1,11,12,13 이 라 고 할 수 있 습 니 다.4 장의 패 를 임의로 뽑 아 가,감,곱 하기,나 누 기(괄호 를 넣 을 수 있 음)로 패 면 의 수 를 24 로 계산한다.각 카드 에 대응 하 는 숫자 는 반드시 한 번 만 사용 하고 한 번 만 사용 해 야 한다.정 해진 시간 내 에 산식 을 입력 하고 10 점 을 정확하게 입력 하 며 잘못된 생명 치 를 1 로 줄 이 고 제출 확인 을 클릭 하여 다음 문제 에 들 어가 고 비우 기 를 클릭 하면 산식 을 비 울 수 있 습 니 다.게임 시작 을 클릭 하여 게임 에 들 어가 면 게임 을 다시 시작 할 수 있 습 니 다.

from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QBasicTimer
from PyQt5.QtGui import QPixmap
import sys

class Ui_Form(QWidget):

 def setupUi(self,Form):
  Form.setObjectName("Form")
  Form.resize(946, 515)

  self.pushButton = QtWidgets.QPushButton(Form)
  self.pushButton.setGeometry(QtCore.QRect(70, 30, 131, 41))
  self.pushButton.setObjectName("pushButton")
  self.pushButton.clicked.connect(self.on_click1)


  self.pushButton_4 = QtWidgets.QPushButton(Form)
  self.pushButton_4.setGeometry(QtCore.QRect(280, 30, 131, 41))
  self.pushButton_4.setObjectName("pushButton_4")
  self.pushButton_4.clicked.connect(self.on_click4)
  self.pushButton_4.setEnabled(False)

  self.textEdit = QtWidgets.QTextEdit(Form)
  self.textEdit.setGeometry(QtCore.QRect(700, 120, 191, 301))
  self.textEdit.setObjectName("textEdit")
  self.textEdit.setReadOnly(True)

  self.label = QtWidgets.QLabel(Form)
  self.label.setGeometry(QtCore.QRect(70, 300, 111, 31))
  self.label.setObjectName("label")
  self.lineEdit = QtWidgets.QLineEdit(Form)
  self.lineEdit.setGeometry(QtCore.QRect(170, 300, 361, 31))
  self.lineEdit.setObjectName("lineEdit")
  self.lineEdit.setMaxLength(15)

  self.label_2 = QtWidgets.QLabel(Form)
  self.label_2.setGeometry(QtCore.QRect(70, 100, 101, 171))
  self.label_2.setObjectName("label_2")
  self.label_3 = QtWidgets.QLabel(Form)
  self.label_3.setGeometry(QtCore.QRect(220, 100, 101, 171))
  self.label_3.setObjectName("label_3")
  self.label_4 = QtWidgets.QLabel(Form)
  self.label_4.setGeometry(QtCore.QRect(370, 100, 101, 171))
  self.label_4.setObjectName("label_4")
  self.label_5 = QtWidgets.QLabel(Form)
  self.label_5.setGeometry(QtCore.QRect(510, 100, 101, 171))
  self.label_5.setObjectName("label_5")
  self.pushButton_2 = QtWidgets.QPushButton(Form)
  self.pushButton_2.setGeometry(QtCore.QRect(170, 360, 93, 28))
  self.pushButton_2.setObjectName("pushButton_2")
  self.pushButton_2.clicked.connect(self.on_click2)

  self.pushButton_3 = QtWidgets.QPushButton(Form)
  self.pushButton_3.setGeometry(QtCore.QRect(300, 360, 93, 28))
  self.pushButton_3.setObjectName("pushButton_3")
  self.pushButton_3.clicked.connect(self.on_click3)

  self.progressBar = QtWidgets.QProgressBar(Form)
  self.progressBar.setGeometry(QtCore.QRect(170, 430, 401, 21))
  self.progressBar.setProperty("value", 0)
  self.progressBar.setObjectName("progressBar")
  self.timer = QBasicTimer()
  self.step = 0

  self.retranslateUi(Form)
  QtCore.QMetaObject.connectSlotsByName(Form)

 def retranslateUi(self, Form):
  _translate = QtCore.QCoreApplication.translate
  Form.setWindowTitle(_translate("Form", "24   "))
  self.pushButton.setText(_translate("Form", "    "))
  self.pushButton_4.setText(_translate("Form", "    "))
  self.textEdit.setHtml(_translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">
" "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">
" "p, li { white-space: pre-wrap; }
" "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">
" "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"> :</p>
" "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"> A、J、Q、K 1、11、12、13。 4 , 、 、 、 ( ) 24。 。 , , , , 。 。</p></body></html>")) self.label.setText(_translate("Form", " :")) self.label_2.setText(_translate("Form", "")) self.label_3.setText(_translate("Form", "")) self.label_4.setText(_translate("Form", "")) self.label_5.setText(_translate("Form", "")) self.pushButton_2.setText(_translate("Form", " ")) self.pushButton_3.setText(_translate("Form", " "))
이상 설정 인터페이스

import itertools
import random
  #     
  self.question_number = 0
  #    
  self.life = 3
  #   
  self.score = 0
  #       
  self.recover = 0

 #             
 def cardFun(self):
  for i in range(4):
   cardNum.append(int(random.random() * 100 % 13) + 1)
  self.listSet = list(set(itertools.permutations(cardNum, 4)))
  return self.listSet #   A(4,4)        

 #             
 def cardCompute(self):
  cardList = self.cardFun()
  for i in range(len(cardList)):
   self.cardGroup = cardList[i]
  self.picture_1()
  self.picture_2()
  self.picture_3()
  self.picture_4()

 def fresh(self):
  self.lineEdit.setText('')
  self.cardFun()
  self.cardCompute()
  #     
  self.progress_bar()
  #       
  self.step = 0
  self.step = self.step + 1
  self.progressBar.setValue(self.step)

 #     
 def on_click1(self):
  self.cardFun()
  self.cardCompute()
  self.progress_bar()
  #              
  self.pushButton.setEnabled(False)
  #               
  self.pushButton_4.setEnabled(True)

 #     
 def on_click2(self):
  #        
  self.question_number += 1
  #     
  self.timer.stop()
  #        
  if self.question_number == 3:
   self.recover = 1
   #       
   self.calstr = self.lineEdit.text()
   #             
   if self.calstr == "":
    self.life -= 1
   else:
    #        
    self.result = int(eval(self.calstr))
    #        ,       
    if self.result == 24:
     self.score += 10
    else:
     self.life -= 1
   #      
   self.lineEdit.setText('')
   #        
   QMessageBox.information(self, "   ", "    
" + str(self.life) + ", " + str(self.score), QMessageBox.Close) # self.pushButton_2.setEnabled(False) self.pushButton_3.setEnabled(False) else: self.calstr = self.lineEdit.text() if self.calstr == "": self.life -= 1 QMessageBox.information(self, " ", "
", QMessageBox.Yes) self.fresh() else: self.result = int(eval(self.calstr)) if self.result == 24: self.score += 10 QMessageBox.information(self, " ", "
", QMessageBox.Yes) self.fresh() else: self.life -= 1 QMessageBox.information(self, " ", "
", QMessageBox.Yes) self.fresh() # def on_click3(self): self.lineEdit.setText('') # def on_click4(self): # 、 、 、 self.question_number = 0 self.life = 3 self.score = 0 self.step = 0 self.timer.stop() QMessageBox.information(self, " ", " ", QMessageBox.Yes) if self.recover == 1: self.pushButton_2.setEnabled(True) self.pushButton_3.setEnabled(True) self.cardFun() self.cardCompute() self.timer.start(600, self) self.step = self.step + 1 self.progressBar.setValue(self.step) # def timerEvent(self, e): # , , if self.step >= 100: self.timer.stop() self.question_number += 1 if self.question_number ==3: self.recover = 1 self.calstr = self.lineEdit.text() if self.calstr == "": self.life -= 1 else: self.result = int(eval(self.calstr)) if self.result == 24: self.score += 10 else: self.life -= 1 self.lineEdit.setText('') # QMessageBox.information(self, " ", "
"+str(self.life)+", "+str(self.score), QMessageBox.Close) self.pushButton_2.setEnabled(False) self.pushButton_3.setEnabled(False) else: self.life -= 1 QMessageBox.information(self, " ", "
", QMessageBox.Yes) self.fresh() return self.step = self.step + 1 self.progressBar.setValue(self.step) # def progress_bar(self): if self.timer.isActive(): self.timer.stop() else: # 1 self.timer.start(600,self) # def picture_1(self): if self.cardGroup[0] == 1: self.label_2.setPixmap(QPixmap('./h1.png')) # elif self.cardGroup[0] == 2: self.label_2.setPixmap(QPixmap('./h2.png')) elif self.cardGroup[0] == 3: self.label_2.setPixmap(QPixmap('./h3.png')) elif self.cardGroup[0] == 4: self.label_2.setPixmap(QPixmap('./h4.png')) elif self.cardGroup[0] == 5: self.label_2.setPixmap(QPixmap('./h5.png')) elif self.cardGroup[0] == 6: self.label_2.setPixmap(QPixmap('./h6.png')) elif self.cardGroup[0] == 7: self.label_2.setPixmap(QPixmap('./h7.png')) elif self.cardGroup[0] == 5: self.label_2.setPixmap(QPixmap('./h8.png')) elif self.cardGroup[0] == 9: self.label_2.setPixmap(QPixmap('./h9.png')) elif self.cardGroup[0] == 10: self.label_2.setPixmap(QPixmap('./h10.png')) elif self.cardGroup[0] == 11: self.label_2.setPixmap(QPixmap('./h11.png')) elif self.cardGroup[0] == 12: self.label_2.setPixmap(QPixmap('./h12.png')) elif self.cardGroup[0] == 13: self.label_2.setPixmap(QPixmap('./h13.png')) # self.label_2.setScaledContents(True) # def picture_2(self): if self.cardGroup[1] == 1: self.label_3.setPixmap(QPixmap('./b1.png')) elif self.cardGroup[1] == 2: self.label_3.setPixmap(QPixmap('./b2.png')) elif self.cardGroup[1] == 3: self.label_3.setPixmap(QPixmap('./b3.png')) elif self.cardGroup[1] == 4: self.label_3.setPixmap(QPixmap('./b4.png')) elif self.cardGroup[1] == 5: self.label_3.setPixmap(QPixmap('./b5.png')) elif self.cardGroup[1] == 6: self.label_3.setPixmap(QPixmap('./b6.png')) elif self.cardGroup[1] == 7: self.label_3.setPixmap(QPixmap('./b7.png')) elif self.cardGroup[1] == 5: self.label_3.setPixmap(QPixmap('./b8.png')) elif self.cardGroup[1] == 9: self.label_3.setPixmap(QPixmap('./b9.png')) elif self.cardGroup[1] == 10: self.label_3.setPixmap(QPixmap('./b10.png')) elif self.cardGroup[1] == 11: self.label_3.setPixmap(QPixmap('./b11.png')) elif self.cardGroup[1] == 12: self.label_3.setPixmap(QPixmap('./b12.png')) elif self.cardGroup[1] == 13: self.label_3.setPixmap(QPixmap('./b13.png')) self.label_3.setScaledContents(True) # def picture_3(self): if self.cardGroup[2] == 1: self.label_4.setPixmap(QPixmap('./f1.png')) elif self.cardGroup[2] == 2: self.label_4.setPixmap(QPixmap('./f2.png')) elif self.cardGroup[2] == 3: self.label_4.setPixmap(QPixmap('./f3.png')) elif self.cardGroup[2] == 4: self.label_4.setPixmap(QPixmap('./f4.png')) elif self.cardGroup[2] == 5: self.label_4.setPixmap(QPixmap('./f5.png')) elif self.cardGroup[2] == 6: self.label_4.setPixmap(QPixmap('./f6.png')) elif self.cardGroup[2] == 7: self.label_4.setPixmap(QPixmap('./f7.png')) elif self.cardGroup[2] == 5: self.label_4.setPixmap(QPixmap('./f8.png')) elif self.cardGroup[2] == 9: self.label_4.setPixmap(QPixmap('./f9.png')) elif self.cardGroup[2] == 10: self.label_4.setPixmap(QPixmap('./f10.png')) elif self.cardGroup[2] == 11: self.label_4.setPixmap(QPixmap('./f11.png')) elif self.cardGroup[2] == 12: self.label_4.setPixmap(QPixmap('./f12.png')) elif self.cardGroup[2] == 13: self.label_4.setPixmap(QPixmap('./f13.png')) self.label_4.setScaledContents(True) # def picture_4(self): if self.cardGroup[3] == 1: self.label_5.setPixmap(QPixmap('./m1.png')) elif self.cardGroup[3] == 2: self.label_5.setPixmap(QPixmap('./m2.png')) elif self.cardGroup[3] == 3: self.label_5.setPixmap(QPixmap('./m3.png')) elif self.cardGroup[3] == 4: self.label_5.setPixmap(QPixmap('./m4.png')) elif self.cardGroup[3] == 5: self.label_5.setPixmap(QPixmap('./m5.png')) elif self.cardGroup[3] == 6: self.label_5.setPixmap(QPixmap('./m6.png')) elif self.cardGroup[3] == 7: self.label_5.setPixmap(QPixmap('./m7.png')) elif self.cardGroup[3] == 5: self.label_5.setPixmap(QPixmap('./m8.png')) elif self.cardGroup[3] == 9: self.label_5.setPixmap(QPixmap('./m9.png')) elif self.cardGroup[3] == 10: self.label_5.setPixmap(QPixmap('./m10.png')) elif self.cardGroup[3] == 11: self.label_5.setPixmap(QPixmap('./m11.png')) elif self.cardGroup[3] == 12: self.label_5.setPixmap(QPixmap('./m12.png')) elif self.cardGroup[3] == 13: self.label_5.setPixmap(QPixmap('./m13.png')) self.label_5.setScaledContents(True) if __name__ == "__main__": cardNum = [] # cardGroup = () # app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QMainWindow() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_())
각 컨트롤 기능 구현
시작 인터페이스

제출 확인 을 누 르 면 입력 오류 시 메시지 상자 가 팝 업 됩 니 다.

문제 풀이 끝 날 때 성적 을 합산 하 다.

질문 있 습 니 다.댓 글 환영 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 지지 해 주시 고 저희 공중전화 의 더 많은 멋 진 내용 에 관심 을 가 져 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기