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

|

|
||||||
|
|
||||||
|
|
@ -56,7 +56,7 @@ BrickGame - популярная портативная консоль 90-ых
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
«Фроггер» - одна из поздних игр, выходящих на консолях Brickgame. Игра представляет собой игровое поле, по которому движутся бревна, и, перепрыгивая по ним, игроку необходимо перевести лягушку с одного берега на другой. Если игрок попадает в воду или лягушка уходит за пределы игрового поля, то лягушка погибает. Игра завершается, когда игрок доводит лягушку до другого берега или погибает последняя лягушка.
|
«Фроггер» — одна из поздних игр, выходящих на консолях Brickgame. Игра представляет собой игровое поле, по которому движутся бревна, и, перепрыгивая по ним, игроку необходимо перевести лягушку с одного берега на другой. Если игрок попадает в воду или лягушка уходит за пределы игрового поля, то лягушка погибает. Игра завершается, когда игрок доводит лягушку до другого берега или погибает последняя лягушка.
|
||||||
|
|
||||||
Для формализации логики данной игры можно представить следующий вариант конечного автомата:
|
Для формализации логики данной игры можно представить следующий вариант конечного автомата:
|
||||||
|
|
||||||
|
|
@ -64,13 +64,13 @@ BrickGame - популярная портативная консоль 90-ых
|
||||||
|
|
||||||
Данный КА имеет следующие состояния:
|
Данный КА имеет следующие состояния:
|
||||||
|
|
||||||
- Старт - состояние, в котором игра ждет, пока игрок нажмет кнопку готовности к игре.
|
- Старт — состояние, в котором игра ждет, пока игрок нажмет кнопку готовности к игре.
|
||||||
- Спавн - состояние, в котором создается очередная лягушка.
|
- Спавн — состояние, в котором создается очередная лягушка.
|
||||||
- Перемещение - основное игровое состояние с обработкой ввода от пользователя - движение лягушки по полосе влево/право или прыжки вперед/назад.
|
- Перемещение — основное игровое состояние с обработкой ввода от пользователя — движение лягушки по полосе влево/право или прыжки вперед/назад.
|
||||||
- Сдвиг - состояние, которое наступает после истечения таймера, при котором сдвигаются все объекты на полосах вправо, вместе с лягушкой.
|
- Сдвиг — состояние, которое наступает после истечения таймера, при котором сдвигаются все объекты на полосах вправо, вместе с лягушкой.
|
||||||
- Столкновение - состояние, которое наступает, если после прыжка лягушка попадает в воду или после смещения бревен лягушка оказывается за пределами игрового поля.
|
- Столкновение — состояние, которое наступает, если после прыжка лягушка попадает в воду или после смещения бревен лягушка оказывается за пределами игрового поля.
|
||||||
- Достигнут другой берег - состояние, которое наступает при достижении лягушкой верхней другого берега.
|
- Достигнут другой берег — состояние, которое наступает при достижении лягушкой верхней другого берега.
|
||||||
- Игра окончена - состояние, которое наступает после достижения другого берега или смерти последней лягушки.
|
- Игра окончена — состояние, которое наступает после достижения другого берега или смерти последней лягушки.
|
||||||
|
|
||||||
Пример реализации фроггера с использованием КА вы можете найти в папке `code-samples`.
|
Пример реализации фроггера с использованием КА вы можете найти в папке `code-samples`.
|
||||||
|
|
||||||
|
|
@ -78,7 +78,7 @@ BrickGame - популярная портативная консоль 90-ых
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
«Тетрис», наверное, одна из самых популярных игр для консоли Brickgame. Нередко и саму консоль называют тетрисом. Цель игры - в наборе очков за построение линий из генерируемых игрой блоков. Очередной блок, сгенерированный игрой, начинает опускаться вниз по игровому полю, пока не достигнет нижней границы или не столкнется с другим блоком. Пользовать может поворачивать фигуры и перемещать их по горизонтали, стараясь составлять ряды. После заполнения ряд уничтожается, игрок получает очки, а блоки, находящиеся выше заполненного ряда опускаются вниз. Игра заканчивается, когда очередная фигура останавливается в самом верхнем ряду.
|
«Тетрис», наверное, одна из самых популярных игр для консоли Brickgame. Нередко и саму консоль называют тетрисом. Цель игры — в наборе очков за построение линий из генерируемых игрой блоков. Очередной блок, сгенерированный игрой, начинает опускаться вниз по игровому полю, пока не достигнет нижней границы или не столкнется с другим блоком. Пользовать может поворачивать фигуры и перемещать их по горизонтали, стараясь составлять ряды. После заполнения ряд уничтожается, игрок получает очки, а блоки, находящиеся выше заполненного ряда опускаются вниз. Игра заканчивается, когда очередная фигура останавливается в самом верхнем ряду.
|
||||||
|
|
||||||
Для формализации логики данной игры можно представить следующий вариант конечного автомата:
|
Для формализации логики данной игры можно представить следующий вариант конечного автомата:
|
||||||
|
|
||||||
|
|
@ -86,12 +86,12 @@ BrickGame - популярная портативная консоль 90-ых
|
||||||
|
|
||||||
Данный КА состоит из следующих состояний:
|
Данный КА состоит из следующих состояний:
|
||||||
|
|
||||||
- Старт - состояние, в котором игра ждет, пока игрок нажмет кнопку готовности к игре.
|
- Старт — состояние, в котором игра ждет, пока игрок нажмет кнопку готовности к игре.
|
||||||
- Спавн - состояние, в которое переходит игра при создании очередного блока и выбора следующего блока для спавна.
|
- Спавн — состояние, в которое переходит игра при создании очередного блока и выбора следующего блока для спавна.
|
||||||
- Перемещение - основное игровое состояние с обработкой ввода от пользователя - поворот блоков/перемещение блоков по горизонтали.
|
- Перемещение — основное игровое состояние с обработкой ввода от пользователя — поворот блоков/перемещение блоков по горизонтали.
|
||||||
- Сдвиг - состояние, в которое переходит игра после истечения таймера. В нем текущий блок перемещается вниз на один уровень.
|
- Сдвиг — состояние, в которое переходит игра после истечения таймера. В нем текущий блок перемещается вниз на один уровень.
|
||||||
- Соединение - состояние, в которое преходит игра после «соприкосновения» текущего блока с уже упавшими или с землей. Если образуются заполненные линии, то она уничтожается и остальные блоки смещаются вниз. Если блок остановился в самом верхнем ряду, то игра переходит в состояние «игра окончена».
|
- Соединение — состояние, в которое преходит игра после «соприкосновения» текущего блока с уже упавшими или с землей. Если образуются заполненные линии, то она уничтожается и остальные блоки смещаются вниз. Если блок остановился в самом верхнем ряду, то игра переходит в состояние «игра окончена».
|
||||||
- Игра окончена - игра окончена.
|
- Игра окончена — игра окончена.
|
||||||
|
|
||||||
## Chapter II <div id="chapter-ii"></div>
|
## Chapter II <div id="chapter-ii"></div>
|
||||||
## Требования к проекту
|
## Требования к проекту
|
||||||
|
|
@ -122,12 +122,12 @@ BrickGame - популярная портативная консоль 90-ых
|
||||||
- Начало игры,
|
- Начало игры,
|
||||||
- Пауза,
|
- Пауза,
|
||||||
- Завершение игры,
|
- Завершение игры,
|
||||||
- Стрелка влево - движение фигуры влево,
|
- Стрелка влево — движение фигуры влево,
|
||||||
- Стрелка вправо - движение фигуры вправо,
|
- Стрелка вправо — движение фигуры вправо,
|
||||||
- Стрелка вниз - падение фигуры,
|
- Стрелка вниз — падение фигуры,
|
||||||
- Стрелка вверх - ни используется в данной игре,
|
- Стрелка вверх — ни используется в данной игре,
|
||||||
- Действие (вращение фигуры).
|
- Действие (вращение фигуры).
|
||||||
- Игровое поле должно соответствовать размерам игрового поля консоли - десять «пикселей» в ширину и двадцать «пикселей» в высоту.
|
- Игровое поле должно соответствовать размерам игрового поля консоли — десять «пикселей» в ширину и двадцать «пикселей» в высоту.
|
||||||
- Фигура, после достижения нижней границы поля или соприкосновения с другой фигурой, должна остановиться. После этого происходит генерация следующей фигуры, показанной на превью.
|
- Фигура, после достижения нижней границы поля или соприкосновения с другой фигурой, должна остановиться. После этого происходит генерация следующей фигуры, показанной на превью.
|
||||||
- Интерфейс библиотеки должен соответствовать описанию, которое находится в materials/library-specification.md.
|
- Интерфейс библиотеки должен соответствовать описанию, которое находится в materials/library-specification.md.
|
||||||
- Пользовательский интерфейс должен поддерживать отрисовку игрового поля и дополнительной информации.
|
- Пользовательский интерфейс должен поддерживать отрисовку игрового поля и дополнительной информации.
|
||||||
|
|
@ -150,13 +150,13 @@ BrickGame - популярная портативная консоль 90-ых
|
||||||
|
|
||||||
Начисление очков будет происходить следующим образом:
|
Начисление очков будет происходить следующим образом:
|
||||||
|
|
||||||
- 1 линия - 100 очков;
|
- 1 линия — 100 очков;
|
||||||
- 2 линии - 300 очков;
|
- 2 линии — 300 очков;
|
||||||
- 3 линии - 700 очков;
|
- 3 линии — 700 очков;
|
||||||
- 4 линии - 1500 очков.
|
- 4 линии — 1500 очков.
|
||||||
|
|
||||||
### Часть 3. Дополнительно. Механика уровней
|
### Часть 3. Дополнительно. Механика уровней
|
||||||
|
|
||||||
Добавь в игру механику уровней. Каждый раз, когда игрок набирает 600 очков, уровень увеличивается на 1. Повышение уровня увеличивает скорость движения фигур. Максимальное количество уровней - 10.
|
Добавь в игру механику уровней. Каждый раз, когда игрок набирает 600 очков, уровень увеличивается на 1. Повышение уровня увеличивает скорость движения фигур. Максимальное количество уровней — 10.
|
||||||
|
|
||||||
💡 [Нажми сюда](https://forms.yandex.ru/cloud/65d4a02673cee73bdc52da80/)**, чтобы поделиться с нами обратной связью на этот проект**. Это анонимно и поможет нашей команде сделать твоё обучение лучше.
|
💡 [Нажми сюда](https://forms.yandex.ru/cloud/65d4a02673cee73bdc52da80/)**, чтобы поделиться с нами обратной связью на этот проект**. Это анонимно и поможет нашей команде сделать твоё обучение лучше.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue