Update from 14
This commit is contained in:
parent
0eb7f0b1c0
commit
fcd73c9b90
8 changed files with 39 additions and 52 deletions
|
|
@ -23,13 +23,13 @@
|
|||
|
||||
## Введение
|
||||
|
||||
Для реализации игры «Тетрис» проект должен состоять из двух частей: библиотеки, реализующей логику работы игры, которую можно подключать к различным GUI в будущем, и терминального интерфейса. Логика работы библиотеки должна быть реализована с использованием конечных автоматов, одно из возможных описаний которого будет дано ниже.
|
||||
Для реализации игры «Тетрис» проект должен состоять из двух частей: библиотеки, реализующей логику работы игры, которую можно в будущем подключать к различным GUI, и терминального интерфейса. Логика работы библиотеки должна быть реализована с использованием конечных автоматов, одно из возможных описаний которого будет дано ниже.
|
||||
|
||||
## Chapter I <div id="chapter-i"></div>
|
||||
## Общая информация
|
||||
### BrickGame
|
||||
|
||||
BrickGame — популярная портативная консоль 90-ых годов с несколькими ~~тысячами~~ встроенными играми, разработанная в Китае. Изначально была копией разработанной в СССР и выпущенной Nintendo в рамках платформы GameBoy игры «Тетрис», но включала в себя также и множество других игр, которые добавлялись с течением времени. Консоль имела небольшой экранчик с игровым полем размера 10х20, представляющим из себя матрицу «пикселей». Справа от поля находилось табло с цифровой индикацией состояния текущей игры, рекордами и прочей дополнительной информацией. Самыми распространенными играми на BrickGame были: тетрис, танки, гонки, фроггер и змейка.
|
||||
BrickGame — популярная портативная консоль 90-ых годов с несколькими ~~тысячами~~ встроенными играми, разработана она была в Китае. Изначально эта игра была копией, разработанной в СССР и выпущенной Nintendo в рамках платформы GameBoy игры «Тетрис», но включала в себя также и множество других игр, которые добавлялись с течением времени. Консоль имела небольшой экранчик с игровым полем размера 10 х 20, представляющим из себя матрицу «пикселей». Справа от поля находилось табло с цифровой индикацией состояния текущей игры, рекордами и прочей дополнительной информацией. Самыми распространенными играми на BrickGame были: тетрис, танки, гонки, фроггер и змейка.
|
||||
|
||||

|
||||
|
||||
|
|
@ -50,7 +50,7 @@ BrickGame — популярная портативная консоль 90-ых
|
|||
- Логика искусственного интеллекта для игр;
|
||||
- Синтаксический и лексический анализ;
|
||||
- Сложные прикладные сетевые протоколы;
|
||||
- Потоковая обработка данных.
|
||||
- Потоковая обработка данных.
|
||||
|
||||
Ниже представлены примеры использования КА для формализации игровой логики нескольких игр из BrickGame.
|
||||
|
||||
|
|
@ -68,9 +68,9 @@ BrickGame — популярная портативная консоль 90-ых
|
|||
|
||||
- Старт — состояние, в котором игра ждет, пока игрок нажмет кнопку готовности к игре.
|
||||
- Спавн — состояние, в котором создается очередная лягушка.
|
||||
- Перемещение — основное игровое состояние с обработкой ввода от пользователя — движение лягушки по полосе влево/право или прыжки вперед/назад.
|
||||
- Сдвиг — состояние, которое наступает после истечения таймера, при котором сдвигаются все объекты на полосах вправо, вместе с лягушкой.
|
||||
- Столкновение — состояние, которое наступает, если после прыжка лягушка попадает в воду или после смещения бревен лягушка оказывается за пределами игрового поля.
|
||||
- Перемещение — основное игровое состояние с обработкой ввода от пользователя: движение лягушки по полосе влево/право или прыжки вперед/назад.
|
||||
- Сдвиг — состояние, которое наступает после истечения таймера, при котором все объекты на полосах сдвигаются вправо вместе с лягушкой.
|
||||
- Столкновение — состояние, которое наступает, если после прыжка лягушка попадает в воду, или если после смещения бревен лягушка оказывается за пределами игрового поля.
|
||||
- Достигнут другой берег — состояние, которое наступает при достижении лягушкой верхней другого берега.
|
||||
- Игра окончена — состояние, которое наступает после достижения другого берега или смерти последней лягушки.
|
||||
|
||||
|
|
@ -90,9 +90,9 @@ BrickGame — популярная портативная консоль 90-ых
|
|||
|
||||
- Старт — состояние, в котором игра ждет, пока игрок нажмет кнопку готовности к игре.
|
||||
- Спавн — состояние, в которое переходит игра при создании очередного блока и выбора следующего блока для спавна.
|
||||
- Перемещение — основное игровое состояние с обработкой ввода от пользователя — поворот блоков/перемещение блоков по горизонтали.
|
||||
- Перемещение — основное игровое состояние с обработкой ввода от пользователя: поворот блоков/перемещение блоков по горизонтали.
|
||||
- Сдвиг — состояние, в которое переходит игра после истечения таймера. В нем текущий блок перемещается вниз на один уровень.
|
||||
- Соединение — состояние, в которое преходит игра после «соприкосновения» текущего блока с уже упавшими или с землей. Если образуются заполненные линии, то она уничтожается, и остальные блоки смещаются вниз. Если блок остановился в самом верхнем ряду, то игра переходит в состояние «игра окончена».
|
||||
- Соединение — состояние, в которое переходит игра после «соприкосновения» текущего блока с уже упавшими или с землей. Если образуются заполненные линии, то она уничтожается, и остальные блоки смещаются вниз. Если блок останавливается в самом верхнем ряду, то игра переходит в состояние «игра окончена».
|
||||
- Игра окончена — игра окончена.
|
||||
|
||||
## Chapter II <div id="chapter-ii"></div>
|
||||
|
|
@ -102,7 +102,7 @@ BrickGame — популярная портативная консоль 90-ых
|
|||
|
||||
Тебе необходимо реализовать программу BrickGame v1.0 aka Tetris:
|
||||
|
||||
- Программа должна быть разработана на языке Си стандарта C11 с использованием компилятора gcc.
|
||||
- Программа должна быть разработана на языке С стандарта C11 с использованием компилятора gcc.
|
||||
- Программа должна состоять из двух частей: библиотеки, реализующей логику игры тетрис, и терминального интерфейса с использованием библиотеки `ncurses`.
|
||||
- Для формализации логики игры должен быть использован конечный автомат.
|
||||
- Библиотека должна иметь функцию, принимающую на вход ввод пользователя, и функцию, выдающую матрицу, которая описывает текущее состояние игрового поля при каждом ее изменении.
|
||||
|
|
@ -119,7 +119,7 @@ BrickGame — популярная портативная консоль 90-ых
|
|||
- Показ следующей фигуры;
|
||||
- Уничтожение заполненных линий;
|
||||
- Завершение игры при достижении верхней границы игрового поля;
|
||||
- В игре должны присутствовать все виды фигур, показанных на картинке ниже.
|
||||
- В игре должны присутствовать все виды фигур, показанные на картинке ниже.
|
||||
- Для управления добавь поддержку всех кнопок, предусмотренных на физической консоли:
|
||||
- Начало игры,
|
||||
- Пауза,
|
||||
|
|
@ -129,8 +129,8 @@ BrickGame — популярная портативная консоль 90-ых
|
|||
- Стрелка вниз — падение фигуры,
|
||||
- Стрелка вверх — не используется в данной игре,
|
||||
- Действие (вращение фигуры).
|
||||
- Игровое поле должно соответствовать размерам игрового поля консоли — десять «пикселей» в ширину и двадцать «пикселей» в высоту.
|
||||
- Фигура, после достижения нижней границы поля или соприкосновения с другой фигурой, должна остановиться. После этого происходит генерация следующей фигуры, показанной на превью.
|
||||
- Игровое поле должно соответствовать размерам игрового поля консоли: десять «пикселей» в ширину и двадцать «пикселей» в высоту.
|
||||
- Фигура после достижения нижней границы поля или соприкосновения с другой фигурой должна остановиться. Вслед за этим происходит генерация следующей фигуры, показанной на превью.
|
||||
- Интерфейс библиотеки должен соответствовать описанию, которое находится в materials/library-specification_RUS.md.
|
||||
- Пользовательский интерфейс должен поддерживать отрисовку игрового поля и дополнительной информации.
|
||||
- Подготовь в любом формате диаграмму, описывающую используемый КА (его состояния и все возможные переходы).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue