-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
58 lines (55 loc) · 3.82 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Змейка на Haskell
[x] Спаун еды в рандомных локациях
[x] Разный сид при каждом запуске
[x] Фиксировать размеры экрана в состоянии при старте
[x] Сделать Vec2 инстансом Num, удалить addVec2
[x] Перенести Vec2 и все функции в отдельный модуль
[ ] -> Ползающая змея
[x] Позиция по умолчанию - в середине экрана
[x] Движение
[x] -> Добавить в GameState направление и длину змеи
[x] Рост
[x] Укорачивание до текущей длины
[ ] -> Поворот по нажатию на стрелки
[x] HsCharm блокирует процесс при запросе нажатой клавиши до её нажатия.
Решение: Попробовать SDL; Если окажется слишком сложно, тогда вариант
с очередью в другом потоке или одну из других библиотек ncurses
[x] Перенести код рендера HsCharm в отдельный модуль
[x] Убедиться, что Main импортирует Renderer, а не HsCharm
[x] Настроить SDL рендер
[x] Настроить SDL ввод
[x] Баг - нажатия на клавиатуру не всегда определяются
[x] Удалить мой Vec2 и использовать V2 из SDL
[x] Рост змеи при поедании
[x] Спаун новой еды
[x] Рестарт при столкновении
[ ] -> Счётчик очков
[ ] -> Рендерить моноширинный текст наиболее простым способом
[ ] Счётчик очков
[ ] Рефакторинг - использовать `import qualified` для SDL и других модулей,
для которых это имеет смысл
[ ] При заходе на одну сторону экрана, змея должна вылезать с противоположной
стороны
[ ] Игнорировать попытку развернуться на 180 градусов
[ ] Не спаунить еду в теле змеи
[ ] Для теста инвертировать условие (спаунить в теле), рендерить еду после змеи
[ ] Экран смерти
[ ] Кнопка рестарта
[ ] Собрать на Android
[ ] Поворачивать при касании в той или иной части экрана (просто делить
весь экран на 4 части двумя диагоналями)
[ ] Добавить джойстик в Android сборке
[ ] Persistent high-score
[ ] Возможность обнулить high-score
Идеи:
[ ] Использовать текстуры
[ ] Показывать надпись "New record!" во время игры при побитии рекорда
[ ] Звуки (поедания и смерти)
[ ] Попробовать haptic feedback на Android (небольшой при поедании,
более сильный при смерти)
[ ] Плавное передвижение змеи
[ ] Изменить цикл отрисовки, чтобы FPS был гибким
[ ] Ограничивать FPS (60 по умолчанию)
[ ] Сделать игровую логику независимой от FPS рендера
[ ] Плавное передвижение змеи
[ ] Показывать клетку, на которую голова перейдёт