использована неинициализированная локальная переменная "column"
пишу игру на консоль но пошло что то не так по идеи должно просто вывести массив из ASCLL или как там символов
#include <conio.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
//#include <>
using namespace std;
struct PLAYERS
{
int hp;
};
int main()
{
int herorow;
int heroColumn;
int symboWall = 177;
int symboheros = 002;
PLAYERS player1;
PLAYERS player2;
player1.hp = 500;
player2.hp = 500;
const int rowCount = 9;
const int ColumnsCount = 12;
bool isGameActive = true;
const unsigned char levelData0[rowCount][ColumnsCount + 1] ={
" #########",
"# # #",
"# # #",
"# # #",
"# 2 # 2 #",
"#########",
};
unsigned char levelData[rowCount][ColumnsCount];
int row;
int colomn;
unsigned char destinationCell = levelData[row][colomn];
bool canMoveHero = false;
for (int r = 0; r < rowCount; r++)
{
for (int c = 0; c < ColumnsCount; c++)
{
unsigned char symbol = levelData0[r][c];
switch (symbol)
{
//wall
case '#':
{
levelData[r][c] = symboWall;
break;
}
//heros
case '2':
{
levelData[r][c] = symboheros;
break;
}
//other symbols
default:
{
levelData[r][c] = symbol;
break;
}
}
}
}
for (int r = 0; r < rowCount; r++)
{
for (int c = 0; c < ColumnsCount; c++)
{
unsigned char symbol = levelData[r][c];
printf("%c", symbol);
}
printf("\n\t");
}
switch (destinationCell)
{
case ' ':
{
canMoveHero = true;
break;
}
if (canMoveHero)
{
levelData[herorow][heroColumn] = ' ';
herorow = row;
heroColumn = colomn;
levelData[herorow][heroColumn] = symboheros;
}
}
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
int row;
int colomn;
unsigned char destinationCell = levelData[row][colomn];
В локальных переменных, которые не инициализированы, лежит мусор. Так что вы собираетесь присвоить переменной destinationCell буквально "какое-то значение неизвестно откуда".
Ответьте себе на вопрос - что должно быть в destinationCell, и присвойте соответствующие значения переменным row и colomn (кстати, по-английски столбец - column).
