0 / 0 / 2
Регистрация: 09.06.2016
Сообщений: 19
|
||||||||||||||||
1 | ||||||||||||||||
Понять алгоритм Тетриса в консоли12.10.2016, 20:19. Показов 2660. Ответов 5
Уважаемые форумчане, помогите новичку! Разбираю игру Тетрис и не могу понять несколько моментов:
1. в классе Field есть методы проверки возможности сдвига фигуры вправо/влево. И я хоть убей, не могу понять их алгоритма((( насколько я поняла: мы берем координаты игрового поля и проверяем наличие фигуры в них. НО! К примеру у нас фигура Вертикальная линия (Line в позиции 2 или 4),мы проверяем возможность сдвига влево:
2. что дает нам этот цикл (в Main)?
Код: Кликните здесь для просмотра всего текста
0
|
12.10.2016, 20:19 | |
Ответы с готовыми решениями:
5
Не могу понять алгоритм решения Алгоритм движения змейки и роста в консоли Программирование тетриса Не могу понять, почему появляется окно консоли |
0 / 0 / 2
Регистрация: 09.06.2016
Сообщений: 19
|
||||||
12.10.2016, 20:31 [ТС] | 2 | |||||
Продолжение кода:
Кликните здесь для просмотра всего текста
0
|
29 / 29 / 18
Регистрация: 09.03.2016
Сообщений: 198
|
|
12.10.2016, 20:39 | 3 |
Для кода на сайте есть специальные функции, чтобы сделать его читабельным.
1
|
[Bicycle Reinventor]
|
|
13.10.2016, 09:23 | 4 |
Оно вообще работает так, как должно работать?
Вторая часть проверки на сдвиг влево мне, если честно, тоже не понятна. Первая, в случае, когда поворот фигуры нечётный, более-менее логична, хоть и вызывает вопросы. Но вот вторая проверка (могу предположить, что это проверка для случая, когда фигура расположена горизонтально) больше похожа на проверку фигуры на поворот, нежели на сдвиг влево. Хотя как видно поворот фигур в этой игре вообще не реализован, так что вполне возможно, что эта вторая проверка никогда не понадобится. Насчёт цикла в Main, как и написано в комментарии, этот цикл управляет скоростью игры - тем, как быстро происходят события в игре. Поскольку Field.level содержит номер "уровня" игры то, чем больше это число, тем меньшее количество раз будет проходить цикл, следовательно меньше будет задержек, а скорость игры будет выше. Хотя опять же не понятно, что произойдёт, когда игрок доберётся до 10-ого уровня, игра просто перестанет обрабатывать нажатия кнопок.
1
|
0 / 0 / 2
Регистрация: 09.06.2016
Сообщений: 19
|
|
13.10.2016, 10:51 [ТС] | 5 |
Пока не разобралась с сайтом(((
Добавлено через 8 минут в том то и дело, что все работает. Я уже и рисовала, и гуглила ..... не могу понять эти проверки((( Добавлено через 2 минуты вот весь код
0
|
[Bicycle Reinventor]
|
||||||||||||||||
13.10.2016, 12:26 | 6 | |||||||||||||||
Что ж, поковырявшись немного, я могу предположить лишь одно - проблема такая же, с которой я сталкивался, когда сам писал тетрис.
Фигура "линия", она же "палка" - несимметрична при поворотах в рамках реалий тетриса. В связи с этим координата, указывающая на позицию фигуры на поле не всегда указывает в верхний левый угол фигуры. При начальном положении фигуры "горизонтально" - её координата совпадает с верхним левым углом. Но после разворачивания фигуры в вертикальное положение, её координата оказывается смещённой на 1 клетку влево, т.е. координата показывает не совсем точно на фигуру. Не знаю, насколько понятно я это объяснил, но если не вдаваться в подробности, то: при горизонтальном положении координата фигуры правильная и поэтому проверку на смещение влево можно произвести так:
Дальше фигуры "линия" я не смотрел, но могу предположить, что такая же проблема с координатой развёрнутой фигуры присутсвует и для других вариантов
0
|
13.10.2016, 12:26 | |
13.10.2016, 12:26 | |
Помогаю со студенческими работами здесь
6
Понять алгоритм Понять алгоритм Понять алгоритм? Хочу начать делать приложения не в консоли, но никак не могу понять, где найти WinForms Application Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|