|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
|
Объясните реализацию логики тетриса27.07.2016, 11:30. Показов 6139. Ответов 65
Добрый день я учу Java и пробую практиковаться. Собрал свой первый арканойд на JavaFX. Теперь пытаюсь собрать тетрис. Сделал класс поля с массивом нулей и нарисовал его. Для тестирования загнал в этот массив вручную вместо нулей несколько единиц в качестве возможной фигурки и все это рендерится в одном методе по условию проверки на 1 или 0.
Но я не понимаю как мне передавать в массив фигурку и двигать ее там, перерисовывая весь массив на каждый сдвиг фигурки ? Если я правильно понимаю конечно. Нигде нет подробного объяснения. Подскажите как надо и как лучше
0
|
|
| 27.07.2016, 11:30 | |
|
Ответы с готовыми решениями:
65
Объясните реализацию формы Объясните реализацию интерфейсов на примере интерфейса IAny пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки. |
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
||
| 31.07.2016, 14:56 [ТС] | ||
|
Первый способ (современный) рисовать ее и двигать поверх доски,как отдельный элемент при столкновении удалять и перерисовывать ее на доску как часть массива. Второй способ (олдскульный) рисовать и двигать фигуру прям в массиве доски и постоянно перерисовывать доску. в начале я хотел сделать по второму способу и хотел спросить как же мне там управлять фигурой. Теперь после неудачный попыток я уже запутался вообще и не знаю, что и как лучше делать.
0
|
||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 02.08.2016, 15:45 | |
|
нате читайте
http://mech.math.msu.su/~shvet... deas.xhtml
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
||
| 02.08.2016, 17:56 [ТС] | ||
|
я уже немного подразобрался ) научился выводить фигурки на доску рандомно ) теперь думаю над алгоритмом падения и проверки столкновений
0
|
||
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
|
| 03.08.2016, 23:59 [ТС] | |
|
могу опускать и останавливать фигурку - но падение никак не привязано к массиву доски,
то есть фигурка не знает на каком ряду находится и сколько занимает столбцов, а двигается в данный момент за счет изменения своих графических координат объекта сцены Java FX (класс Pane), в котором лежат составные квадраты фигурки. Не могу понять как мне сравнить элементы в ряду доски с элементами в фигурке.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 04.08.2016, 08:36 | |
|
Sergio89, вы математику в школе учили? Сравнивайте координаты фигуры относительно координат доски.
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
|
| 04.08.2016, 12:03 [ТС] | |
|
Картина со старой темы другого форума (там были уже делавшие тетрис и немного смогли немного подсказать автору)
Здесь же все туго с советами - приходится писать самому себе, типа мысли в слух. Массив с фигурой опускается вниз перед этим проверяется нет ли в строке под ним препятствия (клетки со значением 1) если есть - надо проверить в одном ли ряду находится единицы фигурки и единица "препятствия" Что я упустил ? нюансов проверки много и сложно мне написать все сходу. Как понять с какой строки начать проверку ? в момент появления фигурка может занимать разное пространство в верху экрана. Как сопоставлять ячейки фигурки с ячейками доски, чтобы столкновение срабатывало именно в том ряду, где находится препятствие
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
|
| 04.08.2016, 12:22 [ТС] | |
|
PS
Ладно хоть тему не удаляют, как на некотором быдлоресурсе с названием бытового прибора
0
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 04.08.2016, 12:35 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
||
| 04.08.2016, 12:47 [ТС] | ||
|
Ну выложу я имеющийся код на гидхаб, кто-то захочет в нем копаться ? (хотя там особо разбираться не в чем - 4 небольших класса ) Я пытаюсь находить нужные мне паттерны в исходниках разных платформ, но мне не все понятно как могу пытаюсь описать процесс в надежде, что зайдет человек, который уже делал и опишет как он делал.
0
|
||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 04.08.2016, 12:54 | |
|
Ты объясни, чего тебе не понятно то.
Берешь фигуру, обходишь все клетки, проверяешь, что клетка, которая ниже текущей не содержит препятствие, если для каждой из клеток фигуры условие выполняется, добавляешь 1 к координате Y.
0
|
|
|
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
| 04.08.2016, 13:05 | |
|
может этой теме место в разделе, где обсуждают алгоритмы?
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
||
| 04.08.2016, 13:10 [ТС] | ||
|
0
|
||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 04.08.2016, 13:37 | ||
|
Да кстати для ускорения определения уперлась фигура или не уперлась заведи одномерный массив по ширине стакана, в котором держи номер максимально верхней заполненой ячейки, фигуру сравнивай с этим массивом. При ширине фигуры это всего 4 сравнения максимум на шаг модели.
1
|
||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 04.08.2016, 14:36 | |
|
Если текущая клетка X,Y, то ниже текущей X,Y+1.
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
||||||||||||
| 04.08.2016, 18:07 [ТС] | ||||||||||||
|
У меня нет координат связанных с ячейками Есть графические координаты объекта сцены, которые я на данный момент изменяю на размер одного квадратика (15px+1px) и все. это никак пока не связано с индексами в массиве доски Добавлено через 19 минут Может так хоть станет понятнее )) А то мне кажется, что мне объясняют то, чего в коде у меня попросту нет Класс фигурки считывает Enum c массивами форм. Сам Enam нет смысла показывать там все понятно - список названий и соответствующий массив
Класс поля, в который будут попадать упавшие фигурки
Все это используется в классе Main создающее окно JavaFX тоже думаю нет смысла его показывать как и энам. Все практически тоже самое как если бы это было на swing Добавлено через 2 часа 24 минуты JavaFX вынуждает изменить подход и использовать его API походу мне придется использовать не проверку по массивам, а проверку по списку, в который я заношу кубики, когда их отрисовываю.
0
|
||||||||||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 04.08.2016, 18:10 | |
|
0
|
|
|
4031 / 2643 / 582
Регистрация: 11.09.2009
Сообщений: 9,438
|
||
| 04.08.2016, 18:19 | ||
|
Попробуйте сначала продумать и прорисовать на бумажке алгоритм, а потом уж подбирайте инструмент, каким его реализовать.
0
|
||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
||
| 04.08.2016, 18:32 | ||
|
И вообще, делай все внутри массива и потом отображай его на свою формочку.
0
|
||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 04.08.2016, 19:04 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 24.10.2013
Сообщений: 70
|
||
| 04.08.2016, 19:07 [ТС] | ||
у фигурки и у доски массив сам по себе, кубики, из которых нарисована фигурка, лежат в списке ArrayList и каждый кубик со своими координатами компонент JavaFX, в котором находятся нарисованные кубики сам по себе и своими координатами. из-за этого постоянно теряюсь плюс у меня есть подозрение, что при рисовании нового кубика в стакане, поверх старых рисуются дубликаты на тех же координатах.
0
|
||
| 04.08.2016, 19:07 | |
|
Помогаю со студенческими работами здесь
40
Программирование тетриса Программирование тетриса
Графическая часть Тетриса Статьи по созданию тетриса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|