오늘은 블랙잭 코드의 리펙토링을 해보도록 하겠다!
꽤 지난 코드였어서 블로그를 작성하면서 다시한번 보는 코드인데, 꽤나 고칠점이 많이 보였다....
오늘본 코드 내일본 코드 다르다는게 절실하게 느껴졌다.
때문에 실행하면서 불편한 점과 가독성 등등 고칠점을 개선해보자.
일단 먼저 실행을 해보자!
def BlackJack():
.
.
.
def loop_game():
while True:
BlackJack()
if not ask_continue("You wanna play more? Y/N: "):
break
loop_game()
시작부터 억까를당하는...
근데 게임을 진행하는 동안에는 천천히 프린트 되기때문에 문제가 안됐지만, 지난 게임을 보기에는 불편했다. 가독성이 떨어졌다.
Deck 클래스에서 카드를 생성할때 for문 작성 방법을 바꿨다.
가독성을 높히면서 직관적으로 변경했다.
이 부분도 대,소문자를 조건에 다 넣지 않고 lower()
을 사용해 소문자로 바꿔버리면 해결이었다.
그리고 strip()
으로 공백을 삭제해 불필요한 입력을 삭제했다.
벨류 계산에 대해서 고민을 많이 했었다.
ACE는 룰에서 1,11로 사용되기 때문이었다. 그러나 이걸 선택하는 부분을 추가 해보니 딜러가 ACE를 뽑았을때도 사용자에게 선택하게 됐었다.
때문에 21 이상일 경우만 ACE를 1로 사용하고 나머지는 11로 하도록 수정했다.
다음은 블랙잭 함수를 수정해보도록 하겠다.