Artifact f6cab5c23c5cba1e0f0d9394edd0e0bf650c3022
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) { fin = finished; }
13 }
14
15 void main()
16 {
17 auto d = new Driver(stdin);
18 d.addObserver!(GuardedOutput)();
19 auto c = d.addObserver!(CUI!MainSolver)();
20 while(!c.fin)
21 d.command(c.solver.single_step());
22 }