주말에 블랙잭 미션 하느라 운동도 못 가고 블랙잭 끝나자마자 바로 체스 미션을 돌입해서 숨 막히는 한 주였다.
그래도 주드랑 원활하게 페어프로그래밍이 진행되어서 체스 미션을 빨리 끝낼 수 있었다.
한 가지 걸림돌이 있었다면 맥으로 진행한 첫 페어프로그래밍이었고 나는 맥의 단축키를 잘 몰라서 주드가 좀 답답했을지도 모른다.
그래도 친절하게 물어보면 다 알려줘서 금방 적응할 수 있었다.
체스 미션에서의 고민
Pawn
은 검정색이면 아래로 움직이고, 흰색이면 위로 움직인다.
지나가던 어떤 아저씨가 그렇다면 BlackPawn
과 WhitePawn
을 나누는 것이 객체지향적이지 않냐고 했다.
Pawn
의 상태는 흰색 또는 검정색인 Color
이고 상태에 따라 움직임이 달라지는 것이기 때문에 하나의 Pawn
에서 담당하는 것이 맞지 않나...? 라는 생각을 했으나, 서로 다른 역할들이 계속 생긴다면 감당할 수 없을 것이다. Pawn
을 분리하는 것도 고려해 보자.
프로모션, 앙파상과 같은 행동을 구현한다고 했을 때 설계가 바뀌어야 할까?
프로모션
- 위치에 따라서 Piece의 인스턴스인
Pawn
이 다른Piece
의 구현체로 바뀐다.
앙파상
- 위치와 몇 번째로 움직였는지에 따라서
Pawn
의 행동이 바뀐다.
위치는 파라미터로 받으면 해결 가능하고, 몇 번째로 움직였는지는 Pawn
이 가지고 있어야 할 것 같다.
'회고 > 우아한테크코스' 카테고리의 다른 글
2023.03.20 일일 회고 (0) | 2023.03.21 |
---|---|
[레벨 1] 사다리 미션 회고 (0) | 2023.03.20 |
2023.03.15 일일 회고 (0) | 2023.03.16 |
2023.03.14 일일 회고 (0) | 2023.03.15 |
2023.03.13 일일 회고 (0) | 2023.03.14 |