c ++ изменяя локальную переменную в методе

Привет, я пишу основной тетрис с выходом ASCII

и у меня есть блочный объект, который я хочу перемещать

Как бы я изменил Персонаж в определенной позиции в моем поле из моего метода?

но VisualStudio говорит мне

1>------ Build started: Project: Tetris, Configuration: Debug Win32 ------
1>Tetris.cpp
1>e:\dateien\uni\c++\tetris\tetris\tetris.cpp(48): warning C4244: '=': conversion from 'int' to 'float', possible loss of data
1>e:\dateien\uni\c++\tetris\tetris\tetris.cpp(49): warning C4244: '=': conversion from 'int' to 'float', possible loss of data
1>e:\dateien\uni\c++\tetris\tetris\tetris.cpp(50): error C2108: subscript is not of integral type
1>e:\dateien\uni\c++\tetris\tetris\tetris.cpp(91): warning C4305: '+=': truncation from 'double' to 'float'
1>Done building project "Tetris.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

код:

#include <iostream>

using namespace std;

int main()
{

const int FieldY = 20;
const int FieldX = 11;

char TetrisField[FieldY][FieldX] =
{
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
"__________",
};

class Block {
public:
float posX;
float posY;
char Character = 'A';

void setPos( int x, int y)
{
posX = x;
posY = y;
TetrisField[posY][posX] = Character;
};
};while (true)
{
Block B1;
B1.setPos(0, 5);

for (int n = 0; n < FieldY; n = n + 1)
{
cout << TetrisField[n][0] << TetrisField[n][1] << TetrisField[n][2] << TetrisField[n][3] << TetrisField[n][4]
<< TetrisField[n][5] << TetrisField[n][6] << TetrisField[n][7] << TetrisField[n][8] << TetrisField[n][9] << endl;

};

};
return 0;
};

Я знаю, что метод вывода плох, но это только для тестирования

Хорошо, теперь я пишу случайные вещи, так что редактор переполнения стека позволяет мне опубликовать этот вопрос, потому что, очевидно, я не написал ни одного обычного слова, не являющегося кодом. ну наконец-то 😉

Спасибо

-1

Решение

В TetrisField[posY][posX] posY а также posX являются значениями с плавающей точкой. «индекс не имеет целочисленного типа» означает, что вы не можете индексировать свой массив с ними.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]