구현 기능 목록
1. 마작게임의 뼈대를 구현 : )
2. 유효패를 계산하여 가장 효율적인 조패를 계산
2-1. 유효패에 대한 개념 정하기
2-2. 패의 샨텐을 계산하는 기능 구현
2-3 각 카드의 유효패를 계산하여 가장 효율적인 타패를 찾음
3. 화료
3.1 필수적인 게임의 진행 과정의 구현
4. 타가들의 버림 배를 구현.
5. 다른 여러 기능을 구현. (리치 퐁 깡 등)
6. 1인 마작 게임 구현.
중간 점검
한 명의 패에 대한 조패 시뮬레이션을 구현함에 있어 기능이 적절하게 수행되는지와 수정이 필요한 부분에 대하여 고민하는 시간을 갖기로 하였다.
시뮬레이션을 돌리다보니 문제점과 보완점을 몇 개 찾았다.
1. 조패 알고리즘
2. 텐파이라는 조건
3. 입력형식
4. 출력형식
1. 조패 알고리즘
저번 게시물에서도 언급하였지만, 조패 알고리즘이 엉망인 것을 눈치챘다.
아마 알고리즘을 전면 수정 해야 할 것 같다.ㅠ
- 샨텐의 감소 유무로만 조패를 진행해도 괜찮은지에 대해 생각해 보기
- 구현에서 문제가 있는지 점검하기
2. 텐파이 조건
텐파이 조건에 대한 오류 또한 발견했다.
텐파이는 = 샨텐수가 1 일 때로 조건을 설정했는데, 적절하게 작동하지 못했다
조건 자체의 문제가 아닌 조패 알고리즘에서 샨텐수를 계산하는 기능에 문제가 있을 것이라고 예상된다.
- 조패 알고리즘을 수정 후 다시 점검
3. 입력형식
버림패를 지정하는 과정에서 나열되어 있는 카드들을 보고 직접 index를 계산해서 입력했는데, 그 과정이 눈이 너무 아팠다.
그래서 버림패의 종류를 입력하여 버림패를 지정할 수 있도록 코드를 수정하였다.
카드에 대한 String 형태의 정보를 저장
(ex 3Man > String cardinfo = "3M")
입력 형식을 기존 int에서 String으로 정정.
카드 리스트를 순회하며 cardinfo와 input값을 비교하여 index를 찾음
카드를 버림
4. 출력형식
출력형식의 보기 불편하여 줄 바꿈 및 단어들을 줄였다.
큰 어려움은 없었지만, 상수들을 수정하는 것에서 여러 클래스를 돌아다니며 하나씩 수정하다 보니 시간이 걸리기도 하고 놓치기도 하였다.
- Enum을 사용하여 상수관리하기
'푸로젝트 > 마작' 카테고리의 다른 글
3.1 화료 - 필수적인 게임의 진행 과정의 구현 (0) | 2023.09.22 |
---|---|
2.3 각 카드의 유효패를 계산하여 가장 효율적인 타패를 찾음 (0) | 2023.09.18 |
2.2 패의 샨텐을 계산하는 기능 구현 2부 (2) | 2023.09.17 |
2.2 패의 샨텐을 계산하는 기능 구현 (0) | 2023.09.17 |
2. 유효패에 대한 개념 (1) | 2023.09.04 |