Diff
Not logged in

Differences From Artifact [98744373e0968733]:

To Artifact [ede3d182d99f2de5]:


1 import util; 1 import util; 2 import game; 2 import game; 3 3 4 class Solver_0 4 class Solver_0 5 { 5 { 6 this(const(Game) g) {} | 6 this(in Game g) {} 7 char single_step() { return 'W'; } 7 char single_step() { return 'W'; } 8 void force(char c) {} 8 void force(char c) {} 9 } 9 } 10 10 11 class Solver_1 11 class Solver_1 12 { 12 { 13 int wait_count = 0; 13 int wait_count = 0; 14 int choke_count = 0; 14 int choke_count = 0; 15 15 16 Game g; 16 Game g; 17 this(const(Game) g) | 17 this(in Game g) 18 { 18 { 19 this.g = g.clone(); 19 this.g = g.clone(); 20 forbidden_cell = new bool[][](g.map.H+2, g.map.W+2); 20 forbidden_cell = new bool[][](g.map.H+2, g.map.W+2); 21 } 21 } 22 22 23 char single_step() 23 char single_step() 24 { 24 { 25 Tuple!(string,int) de = death_move(g); 25 Tuple!(string,int) de = death_move(g); 26 char c = act(g, de[0], de[1]); 26 char c = act(g, de[0], de[1]); 27 g.command(c); | 27 force(c); 28 return c; 28 return c; 29 } 29 } 30 30 31 void force(char c) 31 void force(char c) 32 { 32 { > 33 if(c != 'A') 33 g.command(c); | 34 g.command(c); 34 } 35 } 35 36 36 Tuple!(string,int) death_move(const(Game) g) 37 Tuple!(string,int) death_move(const(Game) g) 37 { 38 { 38 string death; 39 string death; 39 int choice = 0; 40 int choice = 0; 40 foreach(char c; "UDLRW") { 41 foreach(char c; "UDLRW") {