Differences From Artifact [cc3cdceae20eed85]:
- File
src/solver.d
- 2012-07-16 04:36:50 - part of checkin [b4c948b5ca] on branch trunk - Death move avoider for Sovler-wind. (user: kinaba) [annotate]
To Artifact [8a530414bd295205]:
- File
src/solver.d
- 2012-07-16 04:40:41 - part of checkin [2e02a085bf] on branch trunk - Further solver names. (user: kinaba) [annotate]
102 102 interface Solver
103 103 {
104 104 // this(in Game g);
105 105 char single_step();
106 106 void force(char c);
107 107 }
108 108
109 +///
110 +/// Solver "Mountain": be immovable like a mountain.
111 +///
109 112 class 不動如山 : Solver
110 113 {
111 114 this(in Game g) {}
112 115 char single_step() { return 'W'; }
113 116 void force(char c) {}
114 117 }
115 118
119 +///
120 +/// Solver "Forest": shows contemplation.
121 +///
116 122 class 徐如林 : Solver
117 123 {
118 124 int wait_count = 0;
119 125 int choke_count = 0;
120 126
121 127 Game g;
122 128 this(in Game g)
................................................................................
390 396 }
391 397 return [];
392 398 }
393 399 return (danger_ok ? [] : tryA()) ~ tryB() ~ tryC();
394 400 }
395 401 }
396 402
403 +///
404 +/// Solver "Fire": in raiding and plundering other solvers, be like fire.
405 +///
397 406 class 侵掠如火(SubSolver) : Solver
398 407 {
399 408 // Parameters.
400 409 int PredictFuture = 10;
401 410 const string[] RandomChoicePattern; // PF*RCP exhaustive search for RL steps
402 411 const ReplanLength = 400; // O(PF*RCP*RL*SubSolver.single_step)
403 412
................................................................................
597 606 t pop() {
598 607 t v = cur[0]; cur = cur[1..$];
599 608 if(cur.empty) { cur = next; next = null; }
600 609 return v;
601 610 }
602 611 }
603 612
613 +///
614 +/// Solver "Wind": let your rapidity be that of the wind.
615 +///
604 616 class 疾如風 : Solver
605 617 {
606 618 Game g;
607 619 this(in Game g)
608 620 {
609 621 this.g = g.clone();
610 622 }