블랙잭 만들어보기 -완

한포도·2024년 3월 8일
0

Python

목록 보기
4/4

간단할거라 생각했던 블랙잭이 이렇게 오래 걸렸다..

바로 본론으로 게임 실행을 수정해보자.
블랙잭 함수부터!!

전과는 매우 달라짐을 알수있다.

def BlackJack():
    print('Welcome to BlackJack!!')
    #Setting game
    newDeck = Deck()
    dealerHands = []
    playerHands = []
    
    playerHands.append(newDeck.draw())
    dealerHands.append(newDeck.draw())
    late_print(f'First card of player is {playerHands[0]}')
    late_print("Dealer has hidden card.")
    
    playerHands.append(newDeck.draw())
    dealerHands.append(newDeck.draw())
    late_print(f'Second card of player is {playerHands[1]}')
    late_print(f'Second card of dealer is {dealerHands[1]}')
    
    nowPlayerValue = check_value(playerHands)
    nowDealerValue = check_value(dealerHands) #final check each value
    late_print(f"Now your hand's value is {nowPlayerValue}")

불필요한 print들을 쳐내려고 고민을 많이했다.
우리가 실제로 패를 받을때 양쪽으로 펼쳐놓듯이 출력을 했다. 불필요한 정보가 사라지니 자연스레 코드 가독성, 플레이 가독성도 늘어났다.
또한 가독성 때문에 계산을 대신 해주던 부분도 삭제했다. 블랙잭의 묘미는 계산이니까


그 뒤의 플레이 부분이다.

late_print(f'Your new card: {player_hand[-1]}')

이 부분처럼 변수를 만들어서 출력하던걸 리스트로 이미 받는데 필요없지 않나? 라는 생각이 들었다. 때문에 리스트의 역방향 출력으로 최신의 카드를 출력하도록 수정했다.

late_print(f"Dealer's hand: {', '.join(map(str, dealer_hand))}")

또 여기서 join 메서드를 사용해 봤다. map함수는 백준코테를 풀면서 사용해봤기 때문에 적용했다. 전에 작성된 코드에서 하드코딩을 최되한 제거 하려고 노력했다.

조건에 비겼을 경우가 없었다... 단순하고도 필수적인걸 놓쳐서 부끄럽지만 경우를 추가했다.


이 부분은 크게 달라진 것이 없다. 변수명을 바꾼 정도다.

이렇게 블랙잭 코딩이 마무리가 되었다...단순한 게임을 만드는데도 고려할 요소, 그리고 지금도 개선할 부분이 분명 보이겠지만 이렇게 만들어본 과정속에서 얻은 지식들이 굉장히 많았다. 앞으로도 단순이론보단 이론을 적용해가면서 개발을 해나가자.

코드는 깃헙에 올려놓겠다.
개선 방안이 있다면 언제든지 고쳐주시길

결국 백문의 불여일타니까.

profile
응애 개발맨

0개의 댓글