Artifact b38d60ea39d11e6eb880cf91e733ed35fc2b7d63
1 import util;
2 import game;
3 import output;
4 import driver;
5 import solver;
6
7 class CUI(Solver) : GameObserver
8 {
9 this(in Game g) { solver = new Solver(g); }
10 Solver solver;
11 bool fin;
12 override void on_game_changed(char c, in Game g, bool finished)
13 {
14 fin = finished;
15 }
16 }
17
18 void main(string[] args)
19 {
20 Driver d = new Driver(stdin);
21 d.addObserver!(GuardedOutput)();
22 auto c = d.addObserver!(CUI!MainSolver)();
23 while(!c.fin)
24 d.command(c.solver.single_step());
25 }