Способы получения ответов в VP 5.2 - Prolog

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, переношу экспертную из консольной в Визуал, но столкнулся в проблемой остановки предиката, чтобы получить ответ пользователя, сколько не гуглил, нормального примера найти не могу( Нужен любой пример понятный, чтобы остановить выполнение предиката в какой то момент, и сделать пользователю запрос на ответ Да/Нет, с помощью button'ов или же ввода с клавиатуры. В консольной было просто с помощью readchar(_), а в Визуал, что то никак не получается(( Надеюсь на помощь!) И спасибо отклинувшимся)

Решение задачи: «Способы получения ответов в VP 5.2»

textual
Листинг программы
domains
  lists = list*
  list = string
 
facts
  ingridient(string,string,lists)
  otvet_no(list)
  otvet_yes(list)
 
predicates
  tip_blud(string,string)
  game_started(string)
  vopros_po_tipu(string)
  vopros_po_ingridient(lists)
 
clauses
  game_started(Bludo):-
    tip_blud(X, Bludo),nl,
    vopros_po_tipu (X),
    ingridient (Name,X,Spisok),nl,
    vopros_po_ingridient (Spisok),
    write("Âû ìîæåòå ïîëó÷èòü ", X," - ", Name),nl.
 
  game_started(_):-
    write("ÈçâèГ*ГЁГІГҐ, Г*îëü ýìîöèé."),nl.
  
  vopros_po_tipu (Tip):-write("Âû õîòèòå ïðèãîòîâèòü "),
    write(Tip,"? (click y/n)"),
    readchar(Otvet), nl, Otvet='y'.
  
  vopros_po_ingridient ([]).
  vopros_po_ingridient ([H|T]):- otvet_yes(H),!, vopros_po_ingridient (T).
  vopros_po_ingridient ([H|_]):- otvet_no(H),!,fail.
  vopros_po_ingridient ([H|T]):-
    write("Âû èñïîëüçóåòå  "),
    write(H,", ГЄГ*ГЄ ГЁГ*ãðèäèåГ*ГІ? (click y/n)"),
    readchar(Otvet), nl, Otvet ='y',!, assertz(otvet_yes(H)),
    vopros_po_ingridient (T).
  vopros_po_ingridient ([H|_]):-assertz(otvet_no(H)),fail.
  
  
  tip_blud ("pervoe","bludo").
  tip_blud ("vtoroe","bludo").
 
  ingridient ("Product 1",
  "pervoe",["ingridient 1", "ingridient 2"]).
  ingridient ("Product 2.",
  "pervoe", ["ingridient 2", "ingridient 3"]).
 
 
  ingridient ("Product 3.",
  "vtoroe",["ingridient 1"]).
  ingridient ("Product 4.",
  "vtoroe",["ingridient 4", "ingridient 5"]).
 
goal
  game_started("bludo").

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5
Похожие ответы