html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

PHP小游戏之考考记忆力_PHP教程_编程技术

[ ] 已经帮助:人解决问题

  产生几个随机数字,随机提问,总共10轮Zr4HTML5中文学习网 - HTML5先行者学习网

  windows命令行效果图Zr4HTML5中文学习网 - HTML5先行者学习网

/Zr4HTML5中文学习网 - HTML5先行者学习网

 Zr4HTML5中文学习网 - HTML5先行者学习网

  <?phpZr4HTML5中文学习网 - HTML5先行者学习网

  substr(php_sapi_name(), 0, 3) !== 'cli' AND die("Please run in cli mode");Zr4HTML5中文学习网 - HTML5先行者学习网

  new Php_Cli_Game;Zr4HTML5中文学习网 - HTML5先行者学习网

  class Php_Cli_Game{Zr4HTML5中文学习网 - HTML5先行者学习网

  private $_digitals = array();Zr4HTML5中文学习网 - HTML5先行者学习网

  private $_answer = '';Zr4HTML5中文学习网 - HTML5先行者学习网

  private $_level = 0;Zr4HTML5中文学习网 - HTML5先行者学习网

  private $_accuracy = 0;Zr4HTML5中文学习网 - HTML5先行者学习网

  const _SIZE = 30;Zr4HTML5中文学习网 - HTML5先行者学习网

  public function __construct(){Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_level = 1;Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_accuracy = 0;Zr4HTML5中文学习网 - HTML5先行者学习网

  do{Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_init();Zr4HTML5中文学习网 - HTML5先行者学习网

  $str = trim(fgets(STDIN));Zr4HTML5中文学习网 - HTML5先行者学习网

  if(in_array($str, array("q", "e")) $this->_check_answer($str)){Zr4HTML5中文学习网 - HTML5先行者学习网

  break;Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  }while(true);Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  private function _init(){Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_digitals = array_fill(0, self::_SIZE, " ");Zr4HTML5中文学习网 - HTML5先行者学习网

  $range = array_rand(range(0, ++$this->_level * 5), $this->_level);Zr4HTML5中文学习网 - HTML5先行者学习网

  $tmp=array();Zr4HTML5中文学习网 - HTML5先行者学习网

  foreach($range AS $k => $v){Zr4HTML5中文学习网 - HTML5先行者学习网

  do{Zr4HTML5中文学习网 - HTML5先行者学习网

  $rnd = rand(0, self::_SIZE-1);Zr4HTML5中文学习网 - HTML5先行者学习网

  }while($this->_digitals[$rnd] !== " ");Zr4HTML5中文学习网 - HTML5先行者学习网

  $tmp[] = $this->_digitals[$rnd] = $v;Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_mk_question($tmp);Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  private function _check_answer($answer){Zr4HTML5中文学习网 - HTML5先行者学习网

  if($answer === trim($this->_answer)){Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_display("√ Good job!/n");Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_accuracy++;Zr4HTML5中文学习网 - HTML5先行者学习网

  }else{Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_display(join(" ", $this->_digitals) . "/n答案是:{$this->_answer}/n/n");Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  if($this->_level > 10){Zr4HTML5中文学习网 - HTML5先行者学习网

  $grades = array(Zr4HTML5中文学习网 - HTML5先行者学习网

  0 => 'Stupid',Zr4HTML5中文学习网 - HTML5先行者学习网

  1 => 'Stupid',Zr4HTML5中文学习网 - HTML5先行者学习网

  2 => 'Stupid',Zr4HTML5中文学习网 - HTML5先行者学习网

  3 => 'Disappointing',Zr4HTML5中文学习网 - HTML5先行者学习网

  4 => 'Not so bad',Zr4HTML5中文学习网 - HTML5先行者学习网

  5 => 'Not so bad',Zr4HTML5中文学习网 - HTML5先行者学习网

  6 => 'Not bad',Zr4HTML5中文学习网 - HTML5先行者学习网

  7 => 'Impossible',Zr4HTML5中文学习网 - HTML5先行者学习网

  8 => 'Impossible',Zr4HTML5中文学习网 - HTML5先行者学习网

  9 => 'Unbelievable',Zr4HTML5中文学习网 - HTML5先行者学习网

  10 => 'Unbelievable',Zr4HTML5中文学习网 - HTML5先行者学习网

  );Zr4HTML5中文学习网 - HTML5先行者学习网

  $score = $this->_accuracy*10 . "%/t/t{$grades[$this->_accuracy]}!/n";Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_display("/n/n答题正确率:" . $score);Zr4HTML5中文学习网 - HTML5先行者学习网

  return true;Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  return false;Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  private function _mk_question($arr){Zr4HTML5中文学习网 - HTML5先行者学习网

  sort($arr);Zr4HTML5中文学习网 - HTML5先行者学习网

  $len = sizeof($arr);Zr4HTML5中文学习网 - HTML5先行者学习网

  $questions = array();Zr4HTML5中文学习网 - HTML5先行者学习网

  $questions['max'] = array($arr[$len-1], '最大数字');Zr4HTML5中文学习网 - HTML5先行者学习网

  $questions['min'] = array($arr[0], '最小数字');Zr4HTML5中文学习网 - HTML5先行者学习网

  if($len % 2){Zr4HTML5中文学习网 - HTML5先行者学习网

  $questions['mid'] = array($arr[intval($len/2)], '中间数字');Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  if($len>3){Zr4HTML5中文学习网 - HTML5先行者学习网

  $questions['second'] = array($arr[$len-2], '第二大数字');Zr4HTML5中文学习网 - HTML5先行者学习网

  $questions['finally_second'] = array($arr[1], '第二小数字');Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  shuffle($questions);Zr4HTML5中文学习网 - HTML5先行者学习网

  $tmp = array_shift($questions);Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_answer = $tmp[0];Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_display(join(" ", $this->_digitals), range(5, 1));Zr4HTML5中文学习网 - HTML5先行者学习网

  $this->_display("输入刚才出现过的{$tmp[1]}:");Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  private function _display($str = '', $steps = ''){Zr4HTML5中文学习网 - HTML5先行者学习网

  $len = strlen($str);Zr4HTML5中文学习网 - HTML5先行者学习网

  if(is_array($steps)){Zr4HTML5中文学习网 - HTML5先行者学习网

  foreach($steps AS $k => $v){Zr4HTML5中文学习网 - HTML5先行者学习网

  fwrite(STDOUT, $str . "/r");Zr4HTML5中文学习网 - HTML5先行者学习网

  usleep(ceil(1000000/($k+1)));Zr4HTML5中文学习网 - HTML5先行者学习网

  fwrite(STDOUT, str_repeat(" ", $len) . "/r");Zr4HTML5中文学习网 - HTML5先行者学习网

  usleep(ceil(1000000/$this->_level));Zr4HTML5中文学习网 - HTML5先行者学习网

  if($k==$this->_level-1){Zr4HTML5中文学习网 - HTML5先行者学习网

  break;Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  fwrite(STDOUT, "/n");Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  else{Zr4HTML5中文学习网 - HTML5先行者学习网

  fwrite(STDOUT, $str);Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  }Zr4HTML5中文学习网 - HTML5先行者学习网

  ?>Zr4HTML5中文学习网 - HTML5先行者学习网

Zr4HTML5中文学习网 - HTML5先行者学习网
Zr4HTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助