Check-in [bd650eb3f9]
Not logged in
Overview
SHA1 Hash:bd650eb3f90d72a347f4853a0670d7473b820f39
Date: 2012-07-15 20:26:58
User: kinaba
Comment:Output is now fully functional.
Timelines: family | ancestors | descendants | both | trunk
Diffs: redesign
Downloads: Tarball | ZIP archive
Other Links: files | file ages | manifest
Tags And Properties
Changes

Modified src/cui_auto_main.d from [80ad58f91e39ad66] to [b38d60ea39d11e6e].

14 14 fin = finished; 15 15 } 16 16 } 17 17 18 18 void main(string[] args) 19 19 { 20 20 Driver d = new Driver(stdin); 21 -// d.addObserver!(GuardedOutput)(); 22 - d.addObserver!(StdOutput)(); 23 -// auto c = d.addObserver!(CUI!MainSolver)(); 24 - auto c = d.addObserver!(CUI!Solver_0)(); 21 + d.addObserver!(GuardedOutput)(); 22 + auto c = d.addObserver!(CUI!MainSolver)(); 25 23 while(!c.fin) 26 24 d.command(c.solver.single_step()); 27 25 }

Modified src/gui_main.d from [1d7ea5dfabc56eb4] to [372bc7cd7d19e082].

4 4 import solver; 5 5 import std.stdio; 6 6 pragma(lib, "dfl.lib"); 7 7 8 8 void main(string[] args) 9 9 { 10 10 Driver d = new Driver(stdin); 11 -// d.addObserver!(GuardedOutput)(); 12 - d.addObserver!(StdOutput)(); 11 + d.addObserver!(GuardedOutput)(); 13 12 // auto g = d.addObserver!(GUI!MainSolver)(); 14 13 auto g = d.addObserver!(GUI!Solver_0)(); 15 14 g.set_fn(&d.command); 16 15 g.run(); 17 16 }

Modified src/output.d from [b301f73c74ef62f4] to [e2d0d7db868c3a44].

14 14 this(in Game g) {} 15 15 override void on_game_changed(char c, in Game g, bool finished) 16 16 { 17 17 stdout.write(c); 18 18 stdout.flush(); 19 19 } 20 20 } 21 -/* 21 + 22 22 class GuardedOutput : GameObserver 23 23 { 24 24 this(in Game g) 25 25 { 26 26 setup_sigint_handling(); 27 27 score_log ~= g.score; 28 28 flushed = false; ................................................................................ 31 31 override void on_game_changed(char c, in Game g, bool finished) 32 32 { 33 33 if(flushed) 34 34 return; 35 35 36 36 log ~= c; 37 37 score_log ~= g.score; 38 - if(finished || log.length+1==g.map.W*g.map.H) 38 + if(finished || log.length+1==g.W*g.H) 39 39 flush(); 40 40 } 41 41 42 42 private: 43 43 string log; 44 44 long[] score_log; 45 45 bool flushed; ................................................................................ 68 68 { 69 69 assert(g_output is null); 70 70 g_output = this; 71 71 extern(C) static void catch_sigint(int) { g_output.flush(); application_exit(); } 72 72 core.stdc.signal.signal(SIGINT, &catch_sigint); 73 73 } 74 74 } 75 -*/