C++ 배열 응용 육목 만들기 질문

조회수 522회

안녕하세요,

금융공학 전공하면서 C++ 수강중인 대학생입니다. 최근에 막 배열 배우고 배열 응용 육목 짜기 과제를 받았는데요. 처음 시작할때 임시로 const int N을 임의로 설정하고 아래 사진 같은 경우는 N = 19일 경우 2d 배열로 char board[N][N]의 경우입니다. 프로그램은 흑 백 팀으로 나뉘어 B(black)이 시작을 해서 주어진 칸 안에 자리를 입력하고 (H14 밑 사진과 같이) 그리고 W(white)가 두번 기회를 얻고, 그 후 검정이 두번 기회를 얻고 (흑 > 백 > 백 > 흑 > 흑 > 백 > 백 > 흑 > 흑 ...) 육목을 채우면 끝나는 게임입니다. 마지막 칸이 찼는데도 육목이 없을경우는 "Draw Game!"이고 아닐경우 각각 "Black wins/White wins"가 됩니다. 제한사항은 보드 사이즈를 정하는 const int N 이외에는 global variables를 사용할 수 없고 프로그램 안에 최소 4개 이상의 함수, 그리고 그 중 최소 2개의 함수는 배열 변수를 포함하고 있어햐 합니다.

이미지 이미지

코드 어떻게 짜야할지 도움 주시면 정말 감사하겠습니다 ㅠㅠ.

현재 배열판은

#include <iostream>
#include <iomanip>
using namespace std;

const int N = 19;

int main() {
    int array[N][N];

    for (int i = 0; i <= N; i++) {
        if (i == 0) {
            cout << "  ";
            for (int j = 0; j < N; j++) {
                cout << " " << (char)(65 + j); /*apply ASCII code/table and use casting to indicate characters. */
                /*could and would have used printf("%2c", 65 + j) instead of using an extra " " after cout.*/
            }
        }
        else {
            if (i <= 10) {
                cout << " " << i - 1; /*could have used printf("%2d", i - 1); instead of using an extra " " if it was C.*/
            }
            else if (i > 10) {
                cout << i - 1; /*could have used printf("%2d", i - 1); instead of using an extra " " if it was C.*/
            }
            for (int j = 0; j < N; j++) {
                cout << " .";
            }
        }
        cout << endl;
    }
}

이렇게 만들었습니다. 여기서부터 막히네요..

  • #include #include using namespace std; const int N = 19; int main() { int array[N][N]; for (int i = 0; i <= N; i++) { if (i == 0) { cout << " "; for (int j = 0; j < N; j++) { cout << " " << (char)(65 + j); /*apply ASCII code/table and use casting to indicate characters. */ /*could and would have used printf("%2c", 65 + j) instead of using an extra " " after cout.*/ } } else { if (i <= 10) { cout << " " << i - 1; /*could have used printf("%2d", i - 1); instead of using an extra " " if it was C.*/ } else if (i > 10) { cout << i - 1; /*could have used printf("%2d", i - 1); instead of using an extra " " if it was C.*/ } for (int j = 0; j < N; j++) { cout << " ."; } } cout << endl; } } 알 수 없는 사용자 2020.4.20 20:42
  • https://dyndy.tistory.com/221 엽토군 2020.4.21 09:00

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)