使用 PHP-CGI 实现了一个舒尔特列表,锻炼自己的注意力~

起因是今天早上无聊的时候刷抖音 看到最强大脑的一个人分享的舒尔特列表 然后就在想以后要不要给我的儿子也试试啊 觉得作为一个程序员要是用纸质的有点low啊~ 就想到了用程序实现,选择了世界上最香的语言php也是无可厚非的~

下面直接贴代码

# shuerte.php
<?php
  $shuerte_value = range(1,25);
  $shuerte_key = range('a','y');
  $param_arr = getopt('t:');
  $time_num = $param_arr['t'] ? $param_arr['t'] : 10;

  echo '舒尔特列表,一个小游戏,今天在抖音上看到的,说是可以锻炼注意力~'.PHP_EOL;
  echo '游戏规则:请按照1到25的数字顺序,得到字母排序'.PHP_EOL;
  echo '指定游戏次数 php shuerte.php [-t]'.PHP_EOL;
  echo ''.PHP_EOL;
  do{
    $start = time();

    shuffle($shuerte_value);
    $shuerte = array_combine($shuerte_key,$shuerte_value);

    $num = -1;  
    foreach($shuerte as $key => $value){
      echo '| □ '.$key.'=>'.str_pad($value,2).' ';
      $num++;
      if($num % 5 == 4){
        echo '|'.PHP_EOL;
      }
    }

    asort($shuerte);
    fwrite(STDOUT,'请输入您的答案:');

    //这里用trim是因为fgets得到的结果是带一个回车的,很脏~
    if(trim(fgets(STDIN)) === implode('',array_keys($shuerte))){
      echo '用时:'.(time()-$start).'秒'.PHP_EOL;
      echo '回答正确!'.PHP_EOL;
    }else{
      echo '用时:'.(time()-$start).'秒'.PHP_EOL;
      echo '回答错误 再接再厉哦!'.PHP_EOL;
      echo '正确答案为'.implode('',array_keys($shuerte)).PHP_EOL;
    }
    $time_num--;
    echo '游戏剩余'.$time_num.'轮~'.PHP_EOL;
  }while($time_num > 0);
?>

运行方式

php shuerte.php [-t] # 这个t参数是用来控制游戏的次数的  默认是10次

运行效果

舒尔特列表,一个小游戏,今天在抖音上看到的,说是可以锻炼注意力~
游戏规则:请按照1到25的数字顺序,得到字母排序
指定游戏次数 php shuerte.php [-t]

| □ a=>17 | □ b=>10 | □ c=>5  | □ d=>3  | □ e=>19 |
| □ f=>18 | □ g=>4  | □ h=>22 | □ i=>8  | □ j=>11 |
| □ k=>6  | □ l=>12 | □ m=>25 | □ n=>13 | □ o=>7  |
| □ p=>2  | □ q=>23 | □ r=>24 | □ s=>16 | □ t=>20 |
| □ u=>1  | □ v=>14 | □ w=>9  | □ x=>21 | □ y=>15 |
请输入您的答案:123
用时:3秒
回答错误 再接再厉哦!
正确答案为updgckoiwbjlnvysafetxhqrm
游戏剩余19轮~
| □ a=>24 | □ b=>23 | □ c=>14 | □ d=>25 | □ e=>13 |
| □ f=>19 | □ g=>7  | □ h=>22 | □ i=>17 | □ j=>5  |
| □ k=>9  | □ l=>10 | □ m=>20 | □ n=>18 | □ o=>15 |
| □ p=>2  | □ q=>6  | □ r=>4  | □ s=>11 | □ t=>1  |
| □ u=>16 | □ v=>21 | □ w=>12 | □ x=>3  | □ y=>8  |
请输入您的答案:tpxrjqgyklswecouinfmvhbad
用时:93秒
回答正确!
游戏剩余18轮~
| □ a=>13 | □ b=>6  | □ c=>7  | □ d=>25 | □ e=>10 |
| □ f=>4  | □ g=>24 | □ h=>16 | □ i=>11 | □ j=>2  |
| □ k=>21 | □ l=>18 | □ m=>17 | □ n=>23 | □ o=>14 |
| □ p=>22 | □ q=>12 | □ r=>19 | □ s=>5  | □ t=>1  |
| □ u=>8  | □ v=>20 | □ w=>3  | □ x=>9  | □ y=>15 |
请输入您的答案:

可延伸

要是大家有兴趣呢 可以改写 包括游戏的难度 计时作答等 我就不写了 主要是为了我儿子以后能不能用到 我儿子现在五个月,距离高考还有6000多天~

上一篇: 在 Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

下一篇: 双语言或多语言网站怎么做?