Rumah php教程 php手册 PHP小游戏之考考记忆力

PHP小游戏之考考记忆力

Jun 21, 2016 am 08:52 AM
array gt quot this

  产生几个随机数字,随机提问,总共10轮

  windows命令行效果图

 

  

  substr(php_sapi_name(), 0, 3) !== 'cli' AND die("Please run in cli mode");

  new Php_Cli_Game;

  class Php_Cli_Game{

  private $_digitals = array();

  private $_answer = '';

  private $_level = 0;

  private $_accuracy = 0;

  const _SIZE = 30;

  public function __construct(){

  $this->_level = 1;

  $this->_accuracy = 0;

  do{

  $this->_init();

  $str = trim(fgets(STDIN));

  if(in_array($str, array("q", "e")) $this->_check_answer($str)){

  break;

  }

  }while(true);

  }

  private function _init(){

  $this->_digitals = array_fill(0, self::_SIZE, " ");

  $range = array_rand(range(0, ++$this->_level * 5), $this->_level);

  $tmp=array();

  foreach($range AS $k => $v){

  do{

  $rnd = rand(0, self::_SIZE-1);

  }while($this->_digitals[$rnd] !== " ");

  $tmp[] = $this->_digitals[$rnd] = $v;

  }

  $this->_mk_question($tmp);

  }

  private function _check_answer($answer){

  if($answer === trim($this->_answer)){

  $this->_display("√ Good job!\n");

  $this->_accuracy++;

  }else{

  $this->_display(join(" ", $this->_digitals) . "\n答案是:{$this->_answer}\n\n");

  }

  if($this->_level > 10){

  $grades = array(

  0 => 'Stupid',

  1 => 'Stupid',

  2 => 'Stupid',

  3 => 'Disappointing',

  4 => 'Not so bad',

  5 => 'Not so bad',

  6 => 'Not bad',

  7 => 'Impossible',

  8 => 'Impossible',

  9 => 'Unbelievable',

  10 => 'Unbelievable',

  );

  $score = $this->_accuracy*10 . "%\t\t{$grades[$this->_accuracy]}!\n";

  $this->_display("\n\n答题正确率:" . $score);

  return true;

  }

  return false;

  }

  private function _mk_question($arr){

  sort($arr);

  $len = sizeof($arr);

  $questions = array();

  $questions['max'] = array($arr[$len-1], '最大数字');

  $questions['min'] = array($arr[0], '最小数字');

  if($len % 2){

  $questions['mid'] = array($arr[intval($len/2)], '中间数字');

  }

  if($len>3){

  $questions['second'] = array($arr[$len-2], '第二大数字');

  $questions['finally_second'] = array($arr[1], '第二小数字');

  }

  shuffle($questions);

  $tmp = array_shift($questions);

  $this->_answer = $tmp[0];

  $this->_display(join(" ", $this->_digitals), range(5, 1));

  $this->_display("输入刚才出现过的{$tmp[1]}:");

  }

  private function _display($str = '', $steps = ''){

  $len = strlen($str);

  if(is_array($steps)){

  foreach($steps AS $k => $v){

  fwrite(STDOUT, $str . "\r");

  usleep(ceil(1000000/($k+1)));

  fwrite(STDOUT, str_repeat(" ", $len) . "\r");

  usleep(ceil(1000000/$this->_level));

  if($k==$this->_level-1){

  break;

  }

  }

  fwrite(STDOUT, "\n");

  }

  else{

  fwrite(STDOUT, $str);

  }

  }

  }

  ?>



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Apakah perbezaan antara Huawei GT3 Pro dan GT4?

Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Aug 24, 2023 am 09:48 AM

Betulkan: Alat snipping tidak berfungsi dalam Windows 11

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Jul 29, 2023 am 08:22 AM

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone

Isih tatasusunan menggunakan fungsi Array.Isih dalam C# Isih tatasusunan menggunakan fungsi Array.Isih dalam C# Nov 18, 2023 am 10:37 AM

Isih tatasusunan menggunakan fungsi Array.Isih dalam C#

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

Kaedah mudah dan jelas untuk menggunakan fungsi PHP array_merge_recursive(). Kaedah mudah dan jelas untuk menggunakan fungsi PHP array_merge_recursive(). Jun 27, 2023 pm 01:48 PM

Kaedah mudah dan jelas untuk menggunakan fungsi PHP array_merge_recursive().

Cara menggunakan fungsi array_combine dalam PHP untuk menggabungkan dua tatasusunan menjadi tatasusunan bersekutu Cara menggunakan fungsi array_combine dalam PHP untuk menggabungkan dua tatasusunan menjadi tatasusunan bersekutu Jun 26, 2023 pm 01:41 PM

Cara menggunakan fungsi array_combine dalam PHP untuk menggabungkan dua tatasusunan menjadi tatasusunan bersekutu

Penjelasan terperinci tentang penggunaan fungsi PHP array_fill(). Penjelasan terperinci tentang penggunaan fungsi PHP array_fill(). Jun 27, 2023 am 08:42 AM

Penjelasan terperinci tentang penggunaan fungsi PHP array_fill().

See all articles