Diff
Not logged in

Differences From Artifact [6f9d0f82c55a2152]:

To Artifact [89822443381424ce]:


5 5 6 class GUI(Solver) : Form, GameObserver 6 class GUI(Solver) : Form, GameObserver 7 { 7 { 8 this(in Game g) 8 this(in Game g) 9 { 9 { 10 this.solver = new Solver(g); 10 this.solver = new Solver(g); 11 setup_size(g.map.W, g.map.H); 11 setup_size(g.map.W, g.map.H); 12 setup_resources(); | 12 setup_resources(g); 13 draw(g); 13 draw(g); 14 } 14 } 15 15 16 private void delegate(char c) fn; 16 private void delegate(char c) fn; 17 void set_fn(F)(F f) { this.fn = f; } 17 void set_fn(F)(F f) { this.fn = f; } 18 18 19 void run(bool automate = false) 19 void run(bool automate = false) ................................................................................................................................................................................ 50 } 50 } 51 51 52 Font font; 52 Font font; 53 Color[char] colors; 53 Color[char] colors; 54 string[char] render; 54 string[char] render; 55 Graphics graphicContext; 55 Graphics graphicContext; 56 56 57 void setup_resources() | 57 void setup_resources(in Game g) 58 { 58 { 59 this.graphicContext = new MemoryGraphics(this.clientSize.width, 59 this.graphicContext = new MemoryGraphics(this.clientSize.width, 60 this.setStyle(ControlStyles.OPAQUE, true); 60 this.setStyle(ControlStyles.OPAQUE, true); 61 this.font = new Font("MS Gothic", cell-2, GraphicsUnit.PIXEL); 61 this.font = new Font("MS Gothic", cell-2, GraphicsUnit.PIXEL); 62 this.backColor = Color(255,255,255); 62 this.backColor = Color(255,255,255); 63 this.colors['#'] = 63 this.colors['#'] = 64 this.colors['.'] = Color(255,191,127); 64 this.colors['.'] = Color(255,191,127); ................................................................................................................................................................................ 65 this.colors['*'] = Color(255,127,127); 65 this.colors['*'] = Color(255,127,127); 66 this.colors['R'] = Color(128,128,0); 66 this.colors['R'] = Color(128,128,0); 67 this.colors['D'] = Color(255,0,0); 67 this.colors['D'] = Color(255,0,0); 68 this.colors['\\'] = 68 this.colors['\\'] = 69 this.colors['L'] = 69 this.colors['L'] = 70 this.colors['O'] = Color(127,255,127); 70 this.colors['O'] = Color(127,255,127); 71 this.colors['W'] = Color(204,229,255); 71 this.colors['W'] = Color(204,229,255); > 72 foreach(char c; 'A'..'J') this.colors[c] = Color(142,142,255); > 73 foreach(char c; '1'..':') this.colors[c] = Color(255,142,255); 72 this.render['#'] = "■"; 74 this.render['#'] = "■"; 73 this.render['*'] = "✹"; 75 this.render['*'] = "✹"; 74 this.render['.'] = "♒"; 76 this.render['.'] = "♒"; 75 this.render['\\'] = "λ"; 77 this.render['\\'] = "λ"; 76 this.render['R'] = "☃"; 78 this.render['R'] = "☃"; 77 this.render['D'] = "☠"; 79 this.render['D'] = "☠"; 78 this.render['L'] = "☒"; 80 this.render['L'] = "☒"; 79 this.render['O'] = "☐"; | 81 foreach(c,tp; g.map.tr_target) { > 82 char d = g.map[tp]; > 83 this.render[c] = [cast(dchar)('㋀'+d-'1')].to!string(); > 84 } > 85 foreach(char c; '1'..':') this.render[c] = [cast(dchar)('㏠'+c-'1 80 this.paint ~= (Control c, PaintEventArgs ev) { 86 this.paint ~= (Control c, PaintEventArgs ev) { 81 graphicContext.copyTo(ev.graphics, Rect(0,0,this.clientS 87 graphicContext.copyTo(ev.graphics, Rect(0,0,this.clientS 82 }; 88 }; 83 } 89 } 84 90 85 void draw(in Game g) 91 void draw(in Game g) 86 { 92 {