목록 project/project4: blackjack GUI programming (4)
KEEP GOING
버튼 파일을 꾸미기 위한 stylesheet 파일이나 게임 결과 text를 담아두는 파일을 gameText.py로 따로 분리하였다. 그리고나서 메인 로직이 구현된 secondWindow.py의 코드를 개선해보았다. 추가적으로 내부 동작 알고리즘을 구현한 innerCode.py에 대한 unittest를 진행하였는데 unitTest.py에 기록해두었다. 1. button.py from PyQt5.QtWidgets import * class Button(QToolButton): def __init__(self, text, callback): super().__init__() self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.setTex..
수업에서 배운 PyQt5 패키지를 이용하여 블랙잭 GUI를 구현해봤다. 게임 시작 창인 firstWindow 클래스와 메인 윈도우인 secondWindow를 구현하여 Controller를 통해 두 창을 연결시켜주었다. 즉, secondWindow가 게임 중요 로직이 동작하는 메인 윈도우이고 firstWindow는 서브윈도우가 된다. 1. mainGame.py from firstWindow import FirstWindow from secondWindow import SecondWindow from PyQt5.QtWidgets import QApplication import sys class MyController: def __init__(self): self.first_window = FirstWindo..
1. innerCode.py import random marks = ['spades', 'diamonds', 'hearts', 'clubs'] card_english = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] # 파일 입출력 def load(): try: f = open("money.dat", 'r') return int(f.readline()) except FileNotFoundError: f = open("money.dat", 'w') f.write('100000') return 100000 def write(money): f = open("money.dat", 'w') f.write(money) f.close() # 결..
1. 게임 설명 카드의 합이 21점 또는 21점에 가장 가깝게 만들면 승리하고, 21을 초과하면 패배하는 베팅 게임이다. 플레이어는 매 승부마다 원하는 만큼 돈을 베팅할 수 있다. 1)플레이어는 시작 전 원하는 만큼 베팅한 후 카드 두 장을 받는다, 2)이때 두 카드의 합이 21를 초과할 경우 승부 없이 Bust가 되어 패배한다. 카드 합이 21일 경우, 플레이어의 승리로 Black Jack이 되어 배팅한 금액의 2.5배를 지급 받는다. 3)플레이어는 Hit(카드 추가)또는 Stay(승부)를 할 수 있다, Hit를 하는 경우, 카드의 합이 21를 초과할 경우 승부 없이 Bust가 되어 패배한다. 4)승부 시 플레이어의 카드 합이 딜러의 카드 합보다 높다면 승리하며 배팅한 금액의 두배를 얻는다. 만약 플레..