# HG changeset patch # User Steve Losh # Date 1475166809 0 # Node ID d21ec254ff4e90a8964caad9a3d39e4f58106bce # Parent db764ac2697b653310540d8b752e774a1c87344f Use the grounder in the vanilla random player diff -r db764ac2697b -r d21ec254ff4e package.lisp --- a/package.lisp Tue Sep 27 12:53:16 2016 +0000 +++ b/package.lisp Thu Sep 29 16:33:29 2016 +0000 @@ -9,7 +9,7 @@ (:export #:read-gdl #:load-rules - )) + #:redump-gdl)) (defpackage #:scully.reasoners.prolog (:use @@ -52,7 +52,8 @@ #:smug #:scully.quickutils) (:export - )) + #:ground-gdl-file + #:ground-gdl-string)) (defpackage #:scully.players.random (:use diff -r db764ac2697b -r d21ec254ff4e src/gdl.lisp --- a/src/gdl.lisp Tue Sep 27 12:53:16 2016 +0000 +++ b/src/gdl.lisp Thu Sep 29 16:33:29 2016 +0000 @@ -17,3 +17,7 @@ (apply #'invoke-rule database (cdr rule)) (invoke-fact database rule))) rules))) + +(defun redump-gdl (rules) + (let ((*package* (find-package :ggp-rules))) + (format nil "~(~{~S~%~}~)" rules))) diff -r db764ac2697b -r d21ec254ff4e src/grounders/fluxplayer.lisp --- a/src/grounders/fluxplayer.lisp Tue Sep 27 12:53:16 2016 +0000 +++ b/src/grounders/fluxplayer.lisp Thu Sep 29 16:33:29 2016 +0000 @@ -115,19 +115,26 @@ (ensure-list rule))))))) -;;;; API ---------------------------------------------------------------------- -(defun ground-raw (filename) +;;;; Fluxplayer --------------------------------------------------------------- +(defun ground-with-fluxplayer (string filename) (uiop/run-program:run-program `("/Users/sjl/src/fluxplayer/trunk/src/groundgdl.sh" ,filename "-") :force-shell nil + :input (make-string-input-stream string) :output :string)) -(defun ground-gdl (filename) - (->> filename - ground-raw + +;;;; API ---------------------------------------------------------------------- +(defun ground-gdl-string (string) + (->> (ground-with-fluxplayer string "-") + parse-raw-grounded + (apply #'rebuild-rules))) + +(defun ground-gdl-file (filename) + (->> (ground-with-fluxplayer "" filename) parse-raw-grounded (apply #'rebuild-rules))) ; (ground-gdl "gdl/buttons.gdl") -; (ground-gdl "gdl/tictactoe.gdl") +; (ground-gdl-file "gdl/tictactoe.gdl") diff -r db764ac2697b -r d21ec254ff4e src/players/random.lisp --- a/src/players/random.lisp Tue Sep 27 12:53:16 2016 +0000 +++ b/src/players/random.lisp Thu Sep 29 16:33:29 2016 +0000 @@ -13,7 +13,9 @@ (defmethod ggp:player-start-game ((player random-player) rules role timeout) (let ((reasoner (make-prolog-reasoner))) - (load-rules reasoner rules) + (load-rules reasoner (-> rules + scully.gdl:redump-gdl + scully.grounders.fluxplayer:ground-gdl-string)) (setf (rp-role player) role (rp-reasoner player) reasoner (rp-state player) (initial-state reasoner))))