LINUX.ORG.RU
ФорумGames

ZweiStein — TUI аналог Einstein головоломки

 , ,


0

1

У меня накопилось критическое количество претензий к Einstein головомке, присутствующей в практически любом дистре. Моя реализация на данный момент неиграбельна: играть можно, но не очень интересно. Реализованы только два вида «подсказок», интерфейс только-только начал принимать приличный вид. Но базовая структура готова и, в общем и целом, работает. Осталась доводка до ума. Эдакая пре-альфа proof of concept. Изначально идея была свести к минимуму зависимости, но не получилось. Текущая версия требует ncurses.

Написана игра на Си++.

Выглядит так: http://asciigames.pp.ua/images/ZweiStein/screenshots/ZweiStein_screenshot_001.png

Код тут: https://github.com/ANGulchenko/ZweiStein (он должен собираться, но смотреть в него самого не стоит. На то она и преальфа что архитектура менялась на лету несколько раз. Потом окультурю)

Если вдруг есть какие-то идеи «киллер-фич», то озвучивайте.



Последнее исправление: A_Stahl (всего исправлений: 1)

Выглядит, как хрень. Впрочем, это проблема всех сонсольных игорей. Предлагать выбросить, не доводя до ума, как киллерфичу не стоит, как я понимаю?

Virtuos86 ★★★★★
()

собирал, но не фига не понял как играть. выглядит клёво и стильно. дурачка выше не слушай. ascii игры для линуксовых терминалов рулят и педалят!

anonymous
()
Ответ на: комментарий от anonymous

но не фига не понял как играть.

Хелп я пока даже не начинал делать. Это пре-альфа. Правила 1-в-1 с Einstein головоломкой.

⇔ – указывает что эти литеры находятся в соседних стобцах ⇕ – в одном и том же столбце

A_Stahl
() автор топика
$ cmake ..
-- The CXX compiler identification is GNU 10.1.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/bachelor64/games/ZweiStein/b
[bachelor64@w-comp11 b]$ make
Scanning dependencies of target MainProgram
[ 10%] Building CXX object CMakeFiles/MainProgram.dir/game.cpp.o
[ 20%] Building CXX object CMakeFiles/MainProgram.dir/cell.cpp.o
In file included from /home/bachelor64/games/ZweiStein/cell.cpp:1:
/home/bachelor64/games/ZweiStein/cell.h:12:2: error: ‘size_t’ does not name a type
   12 |  size_t getIndexOfFirstTrueSubvalue();
      |  ^~~~~~
/home/bachelor64/games/ZweiStein/cell.h:5:1: note: ‘size_t’ is defined in header ‘<cstddef>’; did you forget to ‘#include <cstddef>’?
    4 | #include <array>
  +++ |+#include <cstddef>
    5 | 
/home/bachelor64/games/ZweiStein/cell.cpp:27:1: error: ‘size_t’ does not name a type
   27 | size_t Cell::getIndexOfFirstTrueSubvalue()
      | ^~~~~~
/home/bachelor64/games/ZweiStein/cell.cpp:3:1: note: ‘size_t’ is defined in header ‘<cstddef>’; did you forget to ‘#include <cstddef>’?
    2 | #include <assert.h>
  +++ |+#include <cstddef>
    3 | 
make[2]: *** [CMakeFiles/MainProgram.dir/build.make:96: CMakeFiles/MainProgram.dir/cell.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:125: CMakeFiles/MainProgram.dir/all] Error 2
make: *** [Makefile:104: all] Error 2
ados ★★★★★
()

А вообще заинтересовало и решил ознакомиться через это:

https://github.com/lksj/einstein-puzzle

но оно, как мне кажется, забаговано. Например я в упор не могу понять почему вот здесь:

https://i.postimg.cc/Xv78FT4Z/2020-07-06-221034-800x600-scrot.png

… не может быть 3-х точек в 1-м столбце и 4-й строке? Я практически уверен, что в данном случае возможно несколько решений.

Но всё же затянуло. Есть лень, конечно, исходники читать, но может где-то существует алгоритм генерации подобных загадок - мне в голову кроме перебора до непротиворечивого единственного решения ничего не приходит.

ados ★★★★★
()
Ответ на: комментарий от ados

error: ‘size_t’ does not name a type

Ничего себе. Это у тебя включён режим самой въедливой и строгой до маразма компиляции что ли? Ок, исправлю.

алгоритм генерации

Я генерирую почти случайную подсказку (несколько тривиальных правил обеспечивают очень большую вероятность её полезности) и сразу же её применяю к игровому полю (т.е. я тупо научил машину играть в эту головоломку так, как это вынужден делать человек). Если на поле что-то изменилось – значит подсказка оказалось полезной. Если нет, то генерирую следующую не совсем случайную подсказку.

A_Stahl
() автор топика
Ответ на: комментарий от ados

https://i.postimg.cc/Xv78FT4Z/2020-07-06-221034-800x600-scrot.png
… не может быть 3-х точек в 1-м столбце и 4-й строке? Я практически уверен, что в данном случае возможно несколько решений.

Ты до конца-то дорешай. Как минимум можно X <треугольник> + поставить. Скорее всего, по ходу решения один из вариантов заполнится чем-то ещё, тогда останется единственный правильный.

Хз, я не помню в этой игре непроходимых ситуаций, чай не «Сапёр». Но вот задуматься заставить может надолго. Там из подсказок можно сделать неочевидные сразу исключения. Может есть где-то полный список интерпретаций подсказок, хз. Мне самому интереснее доходить.

nebularia ★★★
()
Ответ на: комментарий от nebularia

Хз, я не помню в этой игре непроходимых ситуаций, чай не «Сапёр».

Я сталкивался. Но я в эту игру х.з. как долго играю. Лет 10?

A_Stahl
() автор топика

А вообще интересно, конечно. Мне нравится стиль. На Android будет потом? Игра на него уже есть, но мб получится что-то более удобное для игры на экране телефона.

nebularia ★★★
()
Ответ на: комментарий от nebularia

Я ушёл от андроида. Сил моих больше нет ковыряться в этом дерьме. Если нравится стиль, то глянь мои андроидовские FillField и WaHoKe.

A_Stahl
() автор топика
Ответ на: комментарий от nebularia

Ты до конца-то дорешай. Как минимум можно X <треугольник> + поставить. Скорее всего, по ходу решения один из вариантов заполнится чем-то ещё, тогда останется единственный правильный.

Понял свою ошибку. Думал, что горизонтальная подсказка из 3-х знаков значит что знак между двумя другими знаками, но они необязательно соседствуют. Оказывается это также значит и обязательное соседствование. Стало значительно проще решать эти загадки.

ados ★★★★★
()

Посмотрите кто вернулся

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.