2016-08-20 4 views
0

привет, ребята, я пытаюсь создать динамическую игру с двумя игроками tic tac toe, и у меня есть проблема с функцией перемещения, которая должна заставить игрока перемещаться и проверять доску, если ясное место, если ясно печать платы с ходом и говорит другой игрок, чтобы положить в движении ...Как отремонтировать функцию перемещения

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

#define SIGN '_' 
#define FIRST 'X' 
#define SECOND 'O' 

void isValid(void); 
int turn(); 
void printMsg(); 

int main() 
{ 
    printMsg(); 
    int i, j;//indexs 
    int row = 1, column = 1;//first set for the size of the rows\columns. 
    char board[row][column]; 
do 
    { 
    scanf("%d", &row); 
    column = row; 
    }while(row <= 0 || row > 10); 

    for(i = 0; i < row; i++)//for loop to build the board for the game 

    { 

    for(j = 0; j < column; j++) 

     { 
      board[i][j] = SIGN; 
      printf("%c", board[i][j]); 

     } 

     printf("\n"); 
    } 
    turn(); 

    return 0; 
    } 

void printMsg() //prints openning massage. 
{ 
    printf("Enter board size (1 to 10): \n"); 
} 

int turn(int i, int j) 
{ 
    int count = 0; 
    int player = 0; 
    do 
    { 
    printf("\nplayer %d, enter next move: \n", count % 2 + 1); 
     scanf("%d%*c%d", row, column); 
     count++; 
    }while(i > 0 && j > 0); 
    return player; 
} 

ответ

0

вероятно Вам нужно выделить память для полукокса платы [строка] [столбец] динамически, может быть, как это:

char**board=malloc(col_size); 
    for (int i=0; i<size; i++) 
     *(board+i)=malloc(row_size); 

Следовательно, вы можете проверить то же самое, если ячейка пуста или нет;

for (int i=0; i<col_size; i++) 
     for (int c=0; c<row_size; c++) 
      if board[i][c]==filled 
         ... 
      else ...