@@ -2,12 +2,26 @@ import game; import output; import driver; import solver; + +class CUI(Solver) : GameObserver +{ + this(const(Game) g) { + solver = new Solver(g); + } + Solver solver; + bool fin; + override void on_game_changed(char c, const(Game) g, bool finished) + { + fin = finished; + } +} void main(string[] args) { Driver d = new Driver(stdin); d.addObserver!(GuardedOutput)(); - Solver s = d.addObserver!(Solver)(); - s.run(&d.command); + auto c = d.addObserver!(CUI!Solver_1)(); + while(!c.fin) + d.command(c.solver.single_step()); }