I'm FanJae.
[Gomoku] Day 1. 기존 오목 리팩토링 I 본문
1. 시작에 앞서
- 초격자 캠프 과제가 없던 날, C++ 리마인드 차원에서 2인용 오목을 만들어서 포스트로 다룬바 있다.
- [리마인드] 콘솔 화면 2인용 오목 만들기 (C++)
[리마인드] 콘솔 화면 2인용 오목 만들기 (C++)
1. 구현 방법배운 내용을 리마인드 하는 차원에서 구현하였지만, 다루지 않았던 내용의 일부도 포함하였다. 1. menu에서 입력을 받아서 메뉴에 따라 처리를 진행한다. 2. 게임 보드판을 출력하고,
fanjae.tistory.com
- 초격자 캠프 과제로 2인용 오목을 만드는 과제가 나와 기존 C++로 만들었던 오목에 대한 리팩토링을 진행했다.
2. 리팩토링 대상
(1) 파일 분리 및 클래스 기능 단위 분리
- 기존 코드는 한 파일에 모두 구현하였고, 클래스를 전혀 사용하지 않았다.
- 이번 리팩토링의 방향은 가급적 각 파일 단위로 클래스를 분리하고, 클래스의 기능 단위 분리를 진행한다.
(2) 콘솔 화면이 이동할때마다 화면을 지워서 눈이 아프던 문제 개선

- 기존 C++ 2인용 오목 플레이 영상을 보면 화면 이동할 때마다 깜빡임이 일어난다.
- 이번에는 저런 깜빡임 현상이 없도록 구현하려고 한다.
3. 신규 기능 추가
(1) 사용자 편의 표시 제공
① 십자 표기

- 사소한 사항이지만, 오목의 맨 윗쪽과 오른쪽에 십자 표기를 넣어서 위치를 구분할 수 있게 한다.
② 이미 돌이 있는 곳에 X표기

- 기존에는 돌이 놓여 있는 곳이 직관적이지 않아서 불편했다. 이를 X로 표기하여 처리한다.
(2) 3,3 금지 규칙 구현
① 3,3 금지 규칙 구현
- 오목 초보라서 처음 들어봤다.
- 핵심은 3이 동시에 두 개가 발생하여 상대편이 한 쪽을 막아도 다른 쪽으로 열린 4를 만들 때 라고 한다.

- 위와 같은 케이스가 발생하면 3,3이라고 한다.
- 사진에서 X를 쳐둔 곳에 검은 돌을 놓으면 가로, 세로 3이 동시에 생기기 때문이다.
4. 클래스 구조

- 기존 코드를 토대로 우선, 2인용 오목은 완성한 상태이다.
'Projects > Gomoku (Console)' 카테고리의 다른 글
| [Gomoku] Day 3. CPU 추가 (0) | 2026.05.10 |
|---|---|
| [Gomoku] Day 2. 오목 리팩토링 II (0) | 2026.05.09 |