Недавно начал изучать программирование и решил написать для себя небольшую игру. В текстовом файле из символов составил поле для игры и начал переносить его в консоль, но выводится бред(
#include <iostream>
#include <fstream>
#include <time.h>
#include <conio.h>
int main()
{
system("chcp 1251");
const int height = 20, width = 25;
char map[height][width];
int px = 1, py = 1, coins = 0;
FILE* level;
fopen_s(&level, "level1.txt", "r");
fscanf_s(level, "%i%i%*c", &height, &width);
for (int i = 0; i < height; i++)
{
fscanf_s(level, "%s", map[i], 200);
}
fclose(level);
while (true)
{
system("cls");
printf("Coins: %i\n", coins);
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
if (px != j || py != i)
printf("%c", map[i][j]);
else
printf("@");
printf("\n");
}
char move = _getch();
switch (move)
{
case 'w':
if (map[py - 1][px] != '#')
py--;
break;
case 's':
if (map[py + 1][px] != '#')
py++;
break;
case 'd':
if (map[py][px + 1] != '#')
px++;
break;
case 'a':
if (map[py][px - 1] != '#')
px--;
break;
case 'ц':
if (map[py - 1][px] != '#')
py--;
break;
case 'ы':
if (map[py + 1][px] != '#')
py++;
break;
case 'в':
if (map[py][px + 1] != '#')
px++;
break;
case 'ф':
if (map[py][px - 1] != '#')
px--;
break;
}
if (map[py][px] == 'c')
{
map[py][px] = '.';
coins = coins + 1;
}
}
return 0;
}
Это в текстовом документе: