Крестики-нолики неверный листинг - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет форум)Как бренный смертный ничего не понимающий в программировании я решил обратится к вам за помощью боги программирования.Помогите решить для проблему,для вас пустяковую а для обычного смертного непонятную! Ну ладно,теперь без шуток,проблема в том,что после объявления строки
int matrix[n][n];  /* матрица игры */
выдаёт ошибку variably modified 'matrix' at file scope.Как это можно убрать?Отредактируете на моём коде пожалуйста!И вот еще что,маленькая просьба,мне нужно было по заданию сделать так,чтоб игра выводила нужное поле(вроде как сделал)и была универсальная проверка хода(вроде тоже сделал),если не правильно,то исправьте пожалуйста,вам то это не сложно,не что мне дуб дубу)сделайте человеку приятное,а я всю жизнь вас благодарить буду)пожалуйста не игнорьте данную просьбу)всем добра)
#include <stdio.h>
#include <stdlib.h>
int n=0;
int matrix[n][n];  /* матрица игры */
 
char check(void);
void init_matrix(void);
void get_player_move(void);
void get_computer_move(void);
void disp_matrix(void);
 
int main(void)
{
  char done;
 
  printf("This is a game of tic -tac-toe.\n");
  printf("You will play against the computer.\n");
 
  done =  ' ';
  init_matrix();
 
  do {
    disp_matrix();
    get_player_move();
    done = check(); /* проверка, есть ли победитель */
    if(done!= ' ') break; /* есть победитель */
    get_computer_move();
    done = check(); /* проверка, есть ли победитель */
  } while(done== ' ');
 
  if(done=='X') printf("You won!\n");
  else printf("Winning computer!!!!\n");
  disp_matrix(); /* показ финальной позиции */
 
  return 0;
}
 
/* Инициализация матрицы игры. */
void init_matrix(void)
{
  int i, j;
printf("Razmer polia\n");
scanf("%i,n");
  for(i=0; i<n; i++)
    for(j=0; j<n; j++) matrix[i][j] =  ' ';
}
 
/* Ход игрока. */
void get_player_move(void)
{
  int x, y;
 
  printf("Enter the X, Y coordinates of your progress(X-line,Y-column): ");
  scanf("%d%*c%d", &x, &y);
 
  x--; y--;
 
  if(matrix[x][y]!= ' '){
    printf("Wrong move , try another.\n");
    get_player_move();
  }
  else matrix[x][y] = 'X';
}
 
/* Ход компьютера. */
void get_computer_move(void)
{
  int i, j;
  for(i=0; i<n; i++){
    for(j=0; j<n; j++)
      if(matrix[i][j]==' ') break;
    if(matrix[i][j]==' ') break;
  /* Второй break нужен для выхода из цикла по i */
  }
 
  if(i*j==n)  {
    printf("End of the game\n");
    exit(0);
  }
  else
    matrix[i][j] = 'O';
}
 
/* Вывод матрицы на экран. */
void disp_matrix(void)
{
  int t;
 
  for(t=0; t<n; t++) {
    printf(" %c | %c | %c ",matrix[t][0],
            matrix[t][1], matrix [t][2]);
    if(t!=2) printf("\n---|---|---\n");
  }
  printf("\n");
}
 
/* Определение победителя. */
char check(void)
{
  int i;
 
  for (i=0; i<+n;i++){      /*проверка строк*/
  if(matrix[i][i]==matrix[i+1][i+1] &&
  matrix[i+1][i+1]==matrix[i+2][i+2])
  return matrix[i][i];
 
  for (i=0; i<+n;i++){      /*проверка столбцов*/
  if(matrix[i][i]==matrix[i+1][i+1] &&
  matrix[i+1][i+1]==matrix[i+2][i+2])
  return matrix[i][i];
  /* проверка диагоналей */
  for (i=0; i<+n;i++){
  if(matrix[i][i]==matrix[i+1][i+1] &&
  matrix[i+1][i+1]==matrix[i+2][i+2])
  return matrix[i][i];
  // analogichno
  if(matrix[i][i]==matrix[i+1][i+1] &&
  matrix[i+1][i+1]==matrix[i+2][i+2])
  return matrix[i][i];
 
  return ' ';
  }

Решение задачи: «Крестики-нолики неверный листинг»

textual
Листинг программы
                return ' ';
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.5 из 5