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  interface Solver                                                                     102  interface Solver
  103  {                                                                                    103  {
  104          // this(in Game g);                                                          104          // this(in Game g);
  105          char single_step();                                                          105          char single_step();
  106          void force(char c);                                                          106          void force(char c);
  107  }                                                                                    107  }
  108                                                                                       108  
                                                                                        >   109  ///
                                                                                        >   110  /// Solver "Mountain":  be immovable like a mountain.
                                                                                        >   111  ///
  109  class 不動如山 : Solver                                                                  112  class 不動如山 : Solver
  110  {                                                                                    113  {
  111          this(in Game g) {}                                                           114          this(in Game g) {}
  112          char single_step() { return 'W'; }                                           115          char single_step() { return 'W'; }
  113          void force(char c) {}                                                        116          void force(char c) {}
  114  }                                                                                    117  }
  115                                                                                       118  
                                                                                        >   119  ///
                                                                                        >   120  /// Solver "Forest": shows contemplation.
                                                                                        >   121  ///
  116  class 徐如林 : Solver                                                                   122  class 徐如林 : Solver
  117  {                                                                                    123  {
  118          int wait_count = 0;                                                          124          int wait_count = 0;
  119          int choke_count = 0;                                                         125          int choke_count = 0;
  120                                                                                       126  
  121          Game g;                                                                      127          Game g;
  122          this(in Game g)                                                              128          this(in Game g)
................................................................................................................................................................................
  390                          }                                                            396                          }
  391                          return [];                                                   397                          return [];
  392                  }                                                                    398                  }
  393                  return (danger_ok ? [] : tryA()) ~ tryB() ~ tryC();                  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  class 侵掠如火(SubSolver) : Solver                                                       406  class 侵掠如火(SubSolver) : Solver
  398  {                                                                                    407  {
  399          // Parameters.                                                               408          // Parameters.
  400          int            PredictFuture = 10;                                           409          int            PredictFuture = 10;
  401          const string[] RandomChoicePattern; // PF*RCP exhaustive search for RL s     410          const string[] RandomChoicePattern; // PF*RCP exhaustive search for RL s
  402          const          ReplanLength  = 400; // O(PF*RCP*RL*SubSolver.single_step     411          const          ReplanLength  = 400; // O(PF*RCP*RL*SubSolver.single_step
  403                                                                                       412  
................................................................................................................................................................................
  597          t pop() {                                                                    606          t pop() {
  598                  t v = cur[0]; cur = cur[1..$];                                       607                  t v = cur[0]; cur = cur[1..$];
  599                  if(cur.empty) { cur = next; next = null; }                           608                  if(cur.empty) { cur = next; next = null; }
  600                  return v;                                                            609                  return v;
  601          }                                                                            610          }
  602  }                                                                                    611  }
  603                                                                                       612  
                                                                                        >   613  ///
                                                                                        >   614  /// Solver "Wind": let your rapidity be that of the wind.
                                                                                        >   615  ///
  604  class 疾如風 : Solver                                                                   616  class 疾如風 : Solver
  605  {                                                                                    617  {
  606          Game g;                                                                      618          Game g;
  607          this(in Game g)                                                              619          this(in Game g)
  608          {                                                                            620          {
  609                  this.g = g.clone();                                                  621                  this.g = g.clone();
  610          }                                                                            622          }