使用 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多天~
2 Comments
厉害
这个不错啊