пользовательский ввод, пользователь вводит данные в список - PullRequest
0 голосов
/ 29 мая 2018

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

preferencia(ana,joana,1).
preferencia(ana,rui,-1).
preferencia(ana,maria,1).
preferencia(ana,jose,-1).
preferencia(ana,tiago,-1).
preferencia(ana,andre,1).
preferencia(joana,rui,2).
preferencia(joana,maria,1.5).
preferencia(joana,jose,-1).
preferencia(joana,tiago,1).
preferencia(joana,andre,-1).
preferencia(rui,maria,1).
preferencia(rui,jose,-1).
preferencia(rui,tiago,1).
preferencia(rui,andre,1).
preferencia(maria,jose,-1).
preferencia(maria,tiago,1).
preferencia(maria,andre,-1).
preferencia(jose,tiago,1).
preferencia(jose,andre,1).
preferencia(tiago,andre,-1).
preferencia(X,Y,D):-preferencia(Y,X,D),!. % reverse preferenciaance



% representation: S is a list of persons


% evaluation function:
eval([_],0).
eval([Name1,Name2|R],DS):- 
    preferencia(Name1,Name2,D),
    eval([Name2|R],DR),
    DS is D+DR.

start :- write('Pick 2 Person to make a group '), read(X), eval([X,X|R],DS).

Я хочу, чтобы пользователь вводил 2 имени через консоль, поэтому я хочу, чтобы консоль работала так: «Выберите 2 человека, чтобы создать группу», которую пользователь вводит (например, rui, maria)и вернуть значение их предпочтения.Если я ввожу eval ([rui, mariaR], DS), он возвращает значение 1, но это только статическим способом, я хочу, чтобы пользователь мог выбрать 2 имени и вернуть их уровень предпочтения.Я считаю, что основной ошибкой является функция запуска, спасибо

...