1 (edited by j-maks 2013-01-16 11:06:20)

Topic: Волк, коза и якудза

Игра в репозитории instead⚫games

Чтобы освоиться с инстедом, сделал небольшую игру. Прилагаю аттачем.

Изначально это была японская головоломка, наподобие "Волк, коза и капуста". Имена изменены на русские, чтобы был понятен пол персонажей(это- важно).

Условное название игры: "Волк, коза и якудза". Исходного названия не помню, более подходящего названия придумать не смог. Ну и ладно- всё равно эта игра нужна была только для освоения инстеда.

Возможно, исходник этой игры будет интересен новичкам, а опытные инстедовцы могут подсказать, как сделать её лучше. Там в комментах перечислены проблемы игры.

upd. Янв-16-2013
Оформил головоломку в архив, слегка причесал\поправил код

Post's attachments

Attachment icon instead-wolf_goat_yakuza-0.1.zip 3.3 kb, 153 downloads since 2013-01-16 

Re: Волк, коза и якудза

Описание пропадает из-за возвращения false из act и inv. Просто заменить return false на return в функциях zahod, pereprava и мб где-то еще.

Re: Волк, коза и якудза

Один из вариантов решения с , и . в конце списков предметов.

function desc(t)
    return function(s)
        pr(t)
        if objs()[#objs()] == s then -- последний?
            p '.'
        else
            p ','
        end
   end
end
И там где объект определен, типа papa:

papa = obj {
....
    dsc = desc "{папа}";
...
}

Хотя я обычно делал не так. У меня был класс комнат в котором в каждой комнате был объект, которые выводил перечисление объектов заданного класса. Т.е. у объектов не было dsc, но был внешний генератор составного описания.

Re: Волк, коза и якудза

Последнее сообщение после победы остается потому, что после shod делатся явный вызов p.

Как вариант, меняем местами shod и p, а в shod делаем pclr().

Re: Волк, коза и якудза

Peter wrote:

Описание пропадает из-за возвращения false из act и inv. Просто заменить return false на return в функциях zahod, pereprava и мб где-то еще.

да, это сработало. причём, если писать просто return, то возвращается нечто отличное от true, и логика работы программы не нарушается.

Re: Волк, коза и якудза

Peter wrote:

Один из вариантов решения с , и . в конце списков предметов.
...

Ну, генератор описания- не для этой мини-игры, а код помог. интересный приём- размещение описания функции после return. но всё понятно- это всё равно как написать return f1(s); а f1 определить где-то ещё.

исправил запятые и описание берега так, чтобы фраза "на берегу находятся" изменялась, если на берегу всего один человек или ни одного.

Re: Волк, коза и якудза

сообщение, остававшееся после выигрыша тоже подправил и прилагаю исправленный вариант.

Post's attachments

Attachment icon main.lua 13.59 kb, 177 downloads since 2013-01-01 

Re: Волк, коза и якудза

Интересно что, если опираясь на базовую модель загадки добавить такое действие:

  • оставить преступника на берегу одного --> он убежал

головоломка станет непроходимой...

Qui habet aures audiendi, audiat...