LINUX.ORG.RU

Пишу тетрис, внезапный вопрос

 ,


1

3

Короче, смотрите. Фигуры представлены в массиве 4х4, при нажатии клавиши «повернуть» они поворачиваются. Но у меня они крутятся как бы вокруг центра матрицы, а не вокруг центра фигуры. Вопрос - на какие хитрости надо идти, чтобы все было как в настоящем тетрисе?

Deleted

Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от emulek

в x86 это и получается так. Смещение и разименование.

А вот хренушки! Ты сам только что говорил, что двумерный массив — это массив массивов. А раз так, то схема "смещение + разыменование" прокатит лишь если выделить сразу большой кусок памяти и разлиновать его под двумерный массив. Но тогда на кой хрен делать двойные указатели??

Anon
()
Ответ на: комментарий от Anon

А вот хренушки! Ты сам только что говорил, что двумерный массив — это массив массивов. А раз так, то схема «смещение + разыменование» прокатит лишь если выделить сразу большой кусок памяти и разлиновать его под двумерный массив.

дык так и происходит в классической сишечке.

Но тогда на кой хрен делать двойные указатели??

ну для строк у тебя идёт указатель на строки. А вот для столбцов — указатель на элементы.

Т.е. матрица в классической сишке == массив строк. А каждая строка — обычный массив.

В принципе годно, если не крутить. Но вот например в 3D крутить сами матрицы как раз и не нужно, обычные матрицы 4х4 вполне подходят без всяких вращений. Да и вообще в математике поворот самой матрицы AFAIK не нужен.

emulek
()
Ответ на: комментарий от Deleted

Ты можешь заранее прописать все положения фигуры, а не высчитывать его поворотом

Aswed ★★★★★
()
Ответ на: комментарий от funeralismatic

ну ок, если допишу - кастону.

Deleted
()
Ответ на: комментарий от Napilnik

Вы могли бы объяснить, как эфиродинамика объясняет природу поворота фигур в тетрисе? Находятся ли они в эфире? Куда девается энергия после схлопывания рядов по Алексею Пажитнову? Правда ли что РАН сожгла его ранние работы?

anonymous
()
Ответ на: комментарий от anonymous

У чувака занимающегося лженаучной теорией батхёрт:)

Napilnik ★★★★★
()

смотря что есть "центр фигуры"

Возьмем все 5 фигур: I, L, O, Z, S. У каждой из них можно выделить центр масс, геометрический центр, или центр матрицы, описанной вокруг всех фигур (4x4 как у тебя). Ок, пусть мы используем геометрический центр. Тогда у каждой фигуры вдоль каждой координаты (X/Y) может быть 2 ситуации: 1) вдоль этого измерения фигура имеет четное число квадратов. Тогда по этой координате центр будет между квадратами 2) нечетное, тогда по этой координате центр будет в центре квадрата или ребра. Только O имеет четное число квадратов по обеим осям, т.е. центр ее не будет смещаться при повороте на 90. У прочих фигур центр находится на середине ребра, а т.к. у тебя фигура обязана двигаться по сетке, центр будет смещаться скачком при повороте, и это коряво, но избавиться от этого никак нельзя, такова механика игры. При кодинге ты просто выбираешь, куда тебе больше нравится смещать центр фигуры при повороте. Либо определи «центр» фигуры иначе, чтобы ее можно было крутить вокруг оного, не смещая его.

remoteboeing
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.