J'essaie de créer un système expert de diagnostic. J'ai réussi à créer le menu et le sous-menu mais après avoir entré mon choix (par exemple 1). La question qui doit être posée après le sous-menu n'apparaît pas. D'où le fait de ne pas pouvoir continuer. Je voudrais demander s'il y a quelque chose de mal dans ce que j'ai fait? S'il y a, quelle est la bonne façon de le faire?CLIPS: Impossible de continuer après avoir entré le choix
est ici une partie du code de référence:
CLIPS> ;; MainMenu
(defrule Menu
(not (iffoundChoice ?))
=>
(printout t crlf crlf crlf
"Choose one of the problem areas listed below" crlf crlf
" 1.) Brake Pedal System. "crlf crlf
" 2.) Gearbox. "crlf crlf
" 3.) ." crlf crlf
" 4.) END SYSTEM. "crlf crlf crlf
" Enter no. of your choice: ")
(assert (iffoundChoice (read))))
CLIPS> ;; submenu1
(defrule subMenu1
(not (iffoundChoice1 ?))
=>
(printout t crlf crlf crlf
"Choose which topic best relates to your problem? "crlf crlf
" 1.1) Car Pulls One Side When Braking. "crlf crlf
" 1.2) Rear Brake Drag. "crlf crlf
" 1.3) Brake squeal. "crlf crlf
" 4.) END SYSTEM. "crlf crlf crlf
" Enter no. of your choice: ")
(assert (iffoundChoice1 (read))))
CLIPS> ;; Rule 1 based on choice 1
(defrule car_pulls_one_side_when_braking
(iffoundChoice1)
?retractCh1 <- (iffoundChoice1)
(not (ifYesNochoice ?))
=>
(retract ?retractCh1)
(printout t crlf crlf crlf
" Was your tyre uneven? (yes|no) "crlf crlf
" Your answer: ")
(assert (ifYesNochoice (read))))
CLIPS> ;;Rule 2 based on Yes answer in Rule 1
(defrule car_pulls_one_side_when_braking1
(ifYesNochoice yes)
?retractChy <- (ifYesNochoice yes)
(not (ifYesNochoice1 ?))
=>
(retract ?retractChy)
(printout t crlf crlf crlf
" Please check your tyre pressure "crlf crlf
" Is it in good condition? (yes|no) "crlf crlf
" Your answer: "
(assert (ifYesNochoice1 (read)))))
CLIPS> ;;Rule 3 based on Yes answer in Rule 2
(defrule car_pulls_one_side_when_braking2
(ifYesNochoice1 yes)
?retract <- (ifYesNochoice1)
(not (ifYesNochoise2 ?))
=>
(retract ?retract Chy)
(printout t crlf crlf crlf
" Then your car should be no problem. " crlf crlf
" Thanks for using Vehicle Diagnosis Failure System. " crlf crlf))
CLIPS> ;; Rule 4 based on NO answer in Rule 2
(defrule car_pulls_one_side_when_braking3
(ifYesNochoice1 no)
?retract <- (ifYesNochoice1)
(not (ifYesNochoice3 ?))
=>
(retract ?retract Chy)
(printout t crlf crlf crlf
" Please inflate all the tyres according to the tyre plycard. "crlf crlf
" Please check again with your technician if problem is solved. "crlf crlf
" Thanks for using Vehicle Diagnosis Failure System. "crlf crlf))
CLIPS> (reset)
CLIPS> (run)
Salut, désolé pour la réponse tardive, j'ai réussi à le faire fonctionner à l'aide en faisant référence à un autre lien similaire à la mienne [lien] (http://stackoverflow.com/questions/34110980/expert-system-clips -code-return-false-value). mais malheureusement il y a un hoquet mineur dans un code postérieur que j'ai fait que je posterai dans un autre post. Mais merci beaucoup pour l'aide! :) – Isaac