2016-06-04 6 views
-5

전 (사용자 도움 덕분에) 이후로 코드를 완성했습니다.C : Tic Tac Toe 프로그램을 완료했습니다. 개선 할 수있는 팁을 찾고 있습니다.

+1

특별히 아무것도 반환하지 않는 함수 호출에 값을 할당하려고 도움이 필요 코드 (적어도 그 서명에 따라) 테스트. –

+0

보드 [0] [0] = 'O'; 전광판(); display_board() 함수는 "포인터 char ** 보드를 반환하지 않습니다"; 대신 "char ** 보드를 매개 변수로 사용합니다". – jarmod

+0

감사합니다. 나는 그 이상을 읽어야 할 것이다. – rawrggh

답변

0

코드가 완전한 게임으로되어 있다고 확신하지는 않지만 코드가 컴파일되고 시작되도록 반환 값을 변경할 수 있습니다.

#include <stdio.h> 
#include <stdlib.h> 

char **display_board(char **board) { //Create board function 

    const char NUM_COLS = 3; 
    const char NUM_ROWS = 3; 
    const char BLANK_SPACE = '*'; 

    int i, j, k, l; 
    board = (char **) malloc(NUM_ROWS * sizeof(char *)); 
    for (i = 0; i < NUM_ROWS; i++) { 
     board[i] = (char *) malloc(NUM_COLS * sizeof(char)); 

     for (j = 0; j < NUM_COLS; j++) { 
      board[i][j] = BLANK_SPACE; 
     } 

     //Display board function 
    } 

    for (k = 0; k < NUM_ROWS; k++) { 
     for (l = 0; l < NUM_ROWS; l++) { 
      printf("%c", board[k][l]); 
     } 
     printf("\n"); 
    } 
    return board; 
} 

int main() { 
    char **board; 
    int row, col; 
    const char BLANK_SPACE = '*'; 

    int turn, i; 
    turn = 0; 

    display_board(board); 

    //need while !game_not_over conditional statement 

    for (i = 0; i < 20; i++) { 
     turn + 1; 
    } 

    if (turn % 2 == 0) { 
     printf("O's turn\n"); 
     printf("Make your move"); 
     scanf("%d, %d", &row, &col); 

     if ((row == 0 && col == 0) && (board[0][0] == BLANK_SPACE)) { 
      display_board(board); 
      board[0][0] = '0'; 
     } 
     return 0; 
    } 
} 

Debug/gnu 
*** 
*** 
*** 
O's turn 
Make your move*** 
+0

'display_board (board);'->'board = display_board (board);'또한 메모리 누수가 발생합니다. 그래서'create_board'와'display_board'로 나눕니다. – BLUEPIXY

+0

프로그램이 완전히 100 % 완료되지는 않았지만,이 특정 문제는 잠시 동안 막혔습니다. 아, 메모리 누출 문제가 너무 의미가 있습니다! 내 프로그램이 계속 충돌하는 것은 당연하지 만 문제는 보이지 않았습니다. 다음으로 보드를 만들고 표시하는 작업을 나누도록하겠습니다. 유용한 팁을 가져 주셔서 감사합니다. – rawrggh