使用 PHP-CGI 實現了一個舒爾特列表,鍛鍊自己的注意力~

Luerdog發表於2018-11-10

起因是今天早上無聊的時候刷抖音
看到最強大腦的一個人分享的舒爾特列表
然後就在想以後要不要給我的兒子也試試啊
覺得作為一個程式設計師要是用紙質的有點low啊~
就想到了用程式實現,選擇了世界上最香的語言php也是無可厚非的~

下面直接貼程式碼

# shuerte.php
<?php
  $shuerte_value = range(1,25);
  $shuerte_key = range('a','y');
  $param_arr = getopt('t:');
  $time_num = !empty($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多天~

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章