Я кодирую тетрис в Qt C++ на данный момент. Игра почти завершена, и единственное, что мне нужно добавить, это вращение. Теперь, с чем я борюсь, это теория вращения. Тетрис имеет 7 различных видов камней (I, S, Z, L, J, T, O). Есть ли какой-либо алгоритм или что-то подобное с поворотами от разных фигур?Tetris rotation C++
Что я предпочитаю не делать, это иметь корпус переключателя для 7 разных форм для обработки поворотов. Также, если фигура, подобная L, вращается, она имеет 4 разных положения, которые нужно обрабатывать разными.
Так что единственное, о чем я думал, это попросить форму, а затем и позицию. Это предоставит мне несколько переключателей, иначе если в коммутаторе ... Значит много набирать и много проверять на компилятор.
P.S. Мой камень структура выглядит следующим образом :(Steine = Немецкий язык для камня, Art = форма)
struct position
{
int X;
int Y;
};
struct Steine
{
struct position* Position;
int Art;
};
Интересной частью будет то, как камни используются в модели сетки, например. как вы проверяете полные строки. – jhnnslschnr
Уже есть несколько сообщений на тему вращения Tetris, даже на C++ или с Qt [здесь один] (http://stackoverflow.com/questions/7932723/), [здесь еще один] (http://stackoverflow.com/ q/233850/211160), один на [gamedev.SE] (http://gamedev.stackexchange.com/q/17974). Можете ли вы четко объяснить, где вы застряли, что они не отвечают? Это займет больше общего кода ... хотя сначала прочитайте [MCVE] (http://stackoverflow.com/help/mcve)! * (Sidenote: в C++ вы можете просто сказать 'position * Position' вместо' struct position * Position', но где позиция, указанная здесь здесь?) * – HostileFork
'Steine', содержащий указатель на' position', не смотреть прямо. Он должен просто содержать «позицию» напрямую. И, пожалуйста, постарайтесь придерживаться английского языка в программном коде или, по крайней мере, перевести все, прежде чем публиковать сообщения на международном уровне. Кстати, «Искусство» в этом контексте лучше всего переводится как «добро», а не как «форма». –