В этом коде использую структуры. Код написаный без структур отработал с подобным вызовом:
( void StartGame()
{
ClearField();
SetMine(30);
char x;
int y;
do
{
ShowField();
cout << "Please Shot ";
cin >> x >> y;
x = x - 65;
}
while(Shot(x,y));
cout << "Game over";
})
void Funstion() //координаты
{
Field field = {};
field.location.xy;
field.size.HeightWidth = 8;
bool FieldHidden[field.location.xy][field.location.xy];
char FieldOpen[field.size.HeightWidth][field.size.HeightWidth];
const char BorderSymbol = '*';
}
void ClearField(const char BorderSymbol, Field& field, bool FieldHidden[field.location.xy][field.location.xy], char FieldOpen[field.size.HeightWidth][field.size.HeightWidth]) // пустое поле
{
for (int i = 0; i < field.size.HeightWidth; ++i)
{
for (int j = 0; j < field.size.HeightWidth; ++j)
{
FieldOpen[i][j] = BorderSymbol;
FieldHidden[i][j] = 0;
}
}
}
void SetMine(Field& field, bool FieldHidden[field.location.xy][field.location.xy]) // раставляет мины
{
int count = 10;
for (int i = 0; i < count; )
{
int XY = rand()% field.size.HeightWidth;
XY = rand()% field.size.HeightWidth;
if(!FieldHidden[XY][XY])
{
FieldHidden[XY][XY] = 1;
i++;
}
}
}
void ShowField(Field& field, char FieldOpen[field.size.HeightWidth][field.size.HeightWidth]) // отображает
{
cout << " ";
for (int i = 0; i < field.size.HeightWidth; ++i)
{
cout << i << " ";
}
cout << "\n_____________________\n";
for (int i = 0; i < field.size.HeightWidth; ++i)
{
cout << (char)(i+65) << "|";
for (int j = 0; j < field.size.HeightWidth; ++j)
{
cout << FieldOpen[i][j] << " ";
}
cout << endl;
}
}
bool Shot(Field& field, bool FieldHidden[field.location.xy][field.location.xy], char FieldOpen[field.size.HeightWidth][field.size.HeightWidth]) // стреляет
{
if(FieldHidden[field.location.xy][field.location.xy])
{
return false;
}
int count = 0;
for (int i = field.location.xy - 1; i <= field.location.xy + 1 && i < field.size.HeightWidth; ++i)
{
for (int j = field.location.xy - 1; j <= field.location.xy + 1 && j < field.size.HeightWidth; ++j)
{
if (i >= 0 && j >= 0)
{
count += FieldHidden[i][j];
}
}
}
FieldOpen[field.size.HeightWidth][field.size.HeightWidth] = count + 0x30;
return true;
}
void StartGame() // И тут возникли сложности
{
ClearField();
SetMine();
char x;
int y;
do
{
ShowField();
cout << "Please to shot ";
cin >> x >> y;
x = x - 65;
}
while ( Shot(x,y) );
cout << "Game over";
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли вмеcтоwrapper_button использовать амперсанд?
Установил ruby > в терминале IDE прописал