| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jspet
10年前发布

php版的24点游戏源码

<?php     class TwentyFourCal {      public  $needle = 24;      public  $precision = '1e-6';          function TwentyFourCal() {      }             private function notice($mesg) {          var_dump($mesg);      }          /**       * 取得用户输入方法       */      public function calculate($operants = array()) {          try {              $this->search($operants, 4);          } catch (Exception $e) {              $this->notice($e->getMessage());              return;          }          $this->notice('can\'t compute!');          return;      }          /**       * 求24点算法PHP实现       */      private function search($expressions, $level) {          if ($level == 1) {              $result = 'return ' . $expressions[0] . ';';              if ( abs(eval($result) - $this->needle) <= $this->precision) {                  throw new Exception($expressions[0]);              }          }          for ($i=0;$i<$level;$i++) {              for ($j=$i+1;$j<$level;$j++) {                  $expLeft  = $expressions[$i];                  $expRight = $expressions[$j];                  $expressions[$j] = $expressions[$level - 1];                      $expressions[$i] = '(' . $expLeft . ' + ' . $expRight . ')';                  $this->search($expressions, $level - 1);                      $expressions[$i] = '(' . $expLeft . ' * ' . $expRight . ')';                  $this->search($expressions, $level - 1);                      $expressions[$i] = '(' . $expLeft . ' - ' . $expRight . ')';                  $this->search($expressions, $level - 1);                      $expressions[$i] = '(' . $expRight . ' - ' . $expLeft . ')';                  $this->search($expressions, $level - 1);                                     if ($expLeft != 0) {                      $expressions[$i] = '(' . $expRight . ' / ' . $expLeft . ')';                      $this->search($expressions, $level - 1);                  }                                     if ($expRight != 0) {                      $expressions[$i] = '(' . $expLeft . ' / ' . $expRight . ')';                      $this->search($expressions, $level - 1);                  }                  $expressions[$i] = $expLeft;                  $expressions[$j] = $expRight;              }          }          return false;      }          function __destruct() {      }  }     /* demo */  $tf = new TwentyFourCal();  $tf->calculate( array(4,8,8,8) );  ?>