@BeSnoMo
Выпускник

Как решить проблему с циклом?

Ребят, массив считанный с файла, затем я запускаю цикл и при определенном значении массива рисую определенную фигуру, проблема в том , что в один момент координата y прыгает на 300 единиц. Вот код программы
#define n 12
#define m 8
void game() {
	cleardevice;
	initwindow(1200, 800);
	int a[n][m];
	int pole[n][m];
	int xp, yp;
	int rebel[5], droid[5], Buf[2], score = 0;
	 key = 0;
	FILE *f;
	f = fopen("Map 1.txt", "r");
	for (int i = 0; i < m-1; i++)
	{
		for (int j = 0; j < n; j++)
		{
			fscanf(f, "%d", &pole[i][j]);
			printf("%d ", pole[i][j]);
			
		}
		printf("\n");

	}
	int x = 0, y = 0;
	for (int i = 0; i < m; i++)
	{
		x = 0;
		
		for (int j = 0; j < n; j++)
		{

			switch (pole[i][j])
			{
			case 1: brick(x, y, DarkGray); printf("%d %d\n", x, y);
			case 0:;


			}
			x += 100;

		}
		y += 100;
		
	}

}
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
myjcom
@myjcom
pole[n][m];
может pole[m][n]; учитывая как циклы построены?

в pole[m-1][...] находится мусор

pole[...][n > 8] то же

инит
for(int i = 0; i < m-1; i++)
{
  for (int j = 0; j < n; j++)
  {
    fscanf(f, "%d", &pole[i][j]);
    printf("%d ", pole[i][j]);	
  }
  printf("\n");
}

чтение
for (int i = 0; i < m; i++)//??? i < m-1 ???
{
  x = 0;
  for (int j = 0; j < n; j++)
  {
    switch (pole[i][j])
    {
      case 1: 
        brick(x, y, DarkGray); 
        printf("%d %d\n", x, y);
        break; //???
      case 0:;
      //...
    }
    x += 100;
  }
  y += 100;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы