Differences From Artifact [7de11f2564488051]:
- File
src/solver.d
- 2012-07-16 04:17:22 - part of checkin [1110e2f932] on branch trunk - Migrated to no-clone deathmove (user: kinaba) [annotate]
To Artifact [ee76621ab7188714]:
- File
src/solver.d
- 2012-07-16 04:28:04 - part of checkin [e784787a7c] on branch trunk - Renamed solvers. (user: kinaba) [annotate]
1 +//
2 +// http://en.wikipedia.org/wiki/F%C5%ABrinkazan
3 +//
1 4 import util;
2 5 import game;
3 6
4 7 bool is_spacy(char c)
5 8 {
6 9 return c==' ' || c=='.' || c=='R' || c=='!' || c=='\\' || c=='O';
7 10 }
................................................................................
99 102 interface Solver
100 103 {
101 104 // this(in Game g);
102 105 char single_step();
103 106 void force(char c);
104 107 }
105 108
106 -class Solver_0 : Solver
109 +class 不動如山 : Solver
107 110 {
108 111 this(in Game g) {}
109 112 char single_step() { return 'W'; }
110 113 void force(char c) {}
111 114 }
112 115
113 -class Solver_1 : Solver
116 +class 徐如林 : Solver
114 117 {
115 118 int wait_count = 0;
116 119 int choke_count = 0;
117 120
118 121 Game g;
119 122 this(in Game g)
120 123 {
................................................................................
387 390 }
388 391 return [];
389 392 }
390 393 return (danger_ok ? [] : tryA()) ~ tryB() ~ tryC();
391 394 }
392 395 }
393 396
394 -class Solver_2(SubSolver) : Solver
397 +class 侵掠如火(SubSolver) : Solver
395 398 {
396 399 // Parameters.
397 400 int PredictFuture = 10;
398 401 const string[] RandomChoicePattern; // PF*RCP exhaustive search for RL steps
399 402 const ReplanLength = 400; // O(PF*RCP*RL*SubSolver.single_step)
400 403
401 404 Game current_game;
................................................................................
594 597 t pop() {
595 598 t v = cur[0]; cur = cur[1..$];
596 599 if(cur.empty) { cur = next; next = null; }
597 600 return v;
598 601 }
599 602 }
600 603
601 -class Solver_3 : Solver
604 +class 疾如風 : Solver
602 605 {
603 606 Game g;
604 607 this(in Game g)
605 608 {
606 609 this.g = g.clone();
607 610 }
608 611
................................................................................
661 664 }
662 665 }
663 666 }
664 667 return 'A';
665 668 }
666 669 }
667 670
668 -//alias Solver_3 MainSolver;
669 -alias Solver_2!(Solver_1) MainSolver;
670 -//alias Solver_1 MainSolver;
671 -//alias Solver_0 MainSolver;
671 +//alias 侵掠如火!(疾如風) MainSolver;
672 +alias 侵掠如火!(徐如林) MainSolver;
673 +//alias 疾如風 MainSolver;
674 +//alias 徐如林 MainSolver;
675 +//alias 不動如山 MainSolver;