2021-2 또래튜터링 [With. 고연주, 이수빈] 객체지향 구조의 이해와 게임 제작
#게임 구상
- 게임 시작 시 CardDeck에서 Dealer와 Player에게 패를 나눠준다.
- Player는 받은 카드의 숫자(A, J, Q, K의 경우 알파벳)을 비교하여 같은 카드를 선택한다.
- 같은 카드의 경우 카드는 덱에서 버린다. (같은 카드가 없을 때까지)
- 번갈아 거며 서로의 카드를 뽑는다.
- 2.~4. 과정을 반복하며 게임을 진행한다.
- 패를 모두 버린 사람이 승리하게 된다.
#카드덱 구상
- 숫자: 2~10, A, J, Q, K(1, 11, 12, 13으로 final 변수 지정)
- 모양: "spades", "hearts", "diamonds", "clubs"
#메소드 구현
- Removecard, Addcard: Player와 Dealer가 서로의 카드를 뽑았을 때, 각자의 패에서 카드를 제거하거나 추가해주는 메소드로 배열과 for문을 사용하여 구현하였다.
- Drawplayer, Drawdealer: Player와 Dealer에게 카드를 나눠주는 메소드이다.
- Chooseact: Player가 카드를 버리는 것과 Dealer의 카드를 뽑는 것 중 어느 행동을 할 지 선택하는 메소드이다.
- Dealeract: Dealer의 행동을 판단하고 실행시켜주는 메소드이다. 패에 짝이 없을 경우에는 Player의 패를 뽑는 행동을 하게 된다. While문과 이중 for문 및 조건문을 사용하여 구현하였다.
- Player_win: Player 혹은 Dealer의 패가 없을 경우, Player의 승패를 판정해주는 메소드이다. 논리식의 참,거짓 값을 가지고 판단하여 구현하였다.
#오류수정
- Dealer가 Player의 카드를 뽑는 과정에서 인덱스가 잘못 지정되어 쓰레기 값을 뽑아와 게임을 진행하는 오류 발생 --> Palyer와 Dealer의 카드 교환 중 카드가 복제되거나, 카드를 뽑은후 상대의 카드덱에서는 카드가 사라져야 하는데 사라지지 않고 게임이 진행되는 문제 발생 --> 인덱스가 잘못된 부분을 수정하여 쓰레기 값을 가져오지 않도록 하였다.