Допустим, у нас в комнате красное и зеленое яблоки и деревянный и железный стол.
Пользователь пишет: взять яблоко и положить его на стол
Какой из вариантов исполняют современные парсеры?
1. Парсер по-очереди спрашивает, какое именно яблоко и какой именно стол.
2. Сначала парсер спрашивает, какое именно яблоко, пишет "Вы взяли такое-то яблоко", потом спрашивает, какой именно стол.
Неактивен
yandexx написал:
Inform:
>put apple on table
Which do you mean, Green apple or Red apple?
>green
Which do you mean, Wooden table or Iron table?
>wooden
You need to be holding Green apple before you can put it on top of something else.
То есть брать действительно приходится отдельно.
Но это - только для Информа. И то этот момент обходится - в ряде игр сделано так, что объект автоматом берется, если введенная команда подразумевает, что для использования его нужно держать в руках.
А вот как это выглядит для (R)TADS'а:
>взять яблоко и положить это на стол Которое "яблоко" Вы имеете в виду: красное яблоко или зеленое яблоко? >красное Взято. Которое "стол" Вы имеете в виду: деревянный стол или металлический стол?
Но:
>положить яблоко на стол Которое "стол" Вы имеете в виду: деревянный стол или металлический стол? >деревянный Которое "яблоко" Вы имеете в виду: красное яблоко или зеленое яблоко? >зеленое Готово.
Т. е. во втором случае сначала устраняется неопределенность по косвенному объекту (опять-таки в общем случае; при необходимости можно переопределять порядок уточнения для отдельных глаголов - но не буду засорять вам мозг частностями).
Отредактировано uux (14.09.2008 09:55)
Неактивен