wordgame.txt

来自「.从C到CLIPS 虽然CLIPS是用C语言编定出来的」· 文本 代码 · 共 45 行

TXT
45
字号
;;;====================================================== 
;;; Number Puzzle Problem ;;; 
;;; Solves the number puzzle problem in which ;;; 
;;; GERALD 
;;; + DONALD 
;;; ------ 
;;; = ROBERT
;;; 
;;; CLIPS Version 6.0 Example ;;; 
;;; To execute, merely load, reset and run. 
;;; This example takes alot of memory to execute. 
;;;====================================================== 
(defrule startup => (printout t t "The problem is" t t) (printout t " GERALD" t) (printout t " + DONALD" t) (printout t " ------" t) (printout t " = ROBERT" t t) (assert (number 0) (number 1) (number 2) (number 3) (number 4) (number 5) (number 6) (number 7) (number 8) (number 9) (letter G) (letter E) (letter R) (letter A) (letter L) (letter D) (letter O) (letter N) (letter B) (letter T))) 
(defrule generate-combinations (number ?x) (letter ?a) => (assert (combination ?a ?x))) 
(defrule find-solution (combination D ?d) 
  (combination T ?t&~?d) (test (= (mod (+ ?d ?d) 10) ?t)) 
  (combination L ?l&~?d&~?t) 
  (combination R ?r&~?d&~?t&~?l) 
   (test (= (mod (+ ?d ?d (* 10 ?l) (* 10 ?l)) 100) (+ (* 10 ?r) ?t)))
  (combination A ?a&~?d&~?t&~?l&~?r)
  (combination E ?e&~?d&~?t&~?l&~?r&~?a)
   (test (= (mod (+ ?d ?d (* 10 ?l) (* 10 ?l) (* 100 ?a) (* 100 ?a)) 1000) (+ (* 100 ?e) (* 10 ?r) ?t)))
  (combination N ?n&~?d&~?t&~?l&~?r&~?a&~?e)
  (combination B ?b&~?d&~?t&~?l&~?r&~?a&~?e&~?n)
   (test (= (mod (+ ?d ?d (* 10 ?l) (* 10 ?l) (* 100 ?a) (* 100 ?a) (* 1000 ?r) (* 1000 ?n)) 10000) (+ (* 1000 ?b) (* 100 ?e) (* 10 ?r) ?t)))
  (combination O ?o&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b)
  (combination G ?g&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b&~?o)
   (test (= (+ ?d ?d (* 10 ?l) (* 10 ?l) (* 100 ?a) (* 100 ?a) (* 1000 ?r) (* 1000 ?n) (* 10000 ?e) (* 10000 ?o) (* 100000 ?g) (* 100000 ?d)) (+ (* 100000 ?r) (* 10000 ?o) (* 1000 ?b) (* 100 ?e) (* 10 ?r) ?t)))
 => 
(printout t "A Solution is:" t t) 
(printout t " G = " ?g t) 
(printout t " E = " ?e t) 
(printout t " R = " ?r t) 
(printout t " A = " ?a t) 
(printout t " L = " ?l t) 
(printout t " D = " ?d t) 
(printout t " O = " ?o t) 
(printout t " N = " ?n t) 
(printout t " B = " ?b t) 
(printout t " T = " ?t t) 
(printout t t) 
(printout t " " ?g ?e ?r ?a ?l ?d t) 
(printout t " + " ?d ?o ?n ?a ?l ?d t) 
(printout t " " "------" t) 
(printout t " = " ?r ?o ?b ?e ?r ?t t t)) 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?