ホームページ > php教程 > php手册 > 記憶力をテストする PHP ミニゲーム

記憶力をテストする PHP ミニゲーム

WBOY
リリース: 2016-06-21 08:52:44
オリジナル
1222 人が閲覧しました

いくつかの乱数を生成し、ランダムな質問をする、合計 10 ラウンド

Windows コマンド ライン レンダリング

substr(php_sapi_name(), 0, 3) !== 'cli' AND die("cli モードで実行してください");

新しい Php_Cli_Game;

クラス Php_Cli_Game{

プライベート $_digitals = array();

プライベート $_answer = '';

プライベート $_level = 0;

プライベート $_accuracy = 0;

const _SIZE = 30;

パブリック関数 __construct(){

$this->_level = 1;

$this->_accuracy = 0;

する{

$this->_init();

$str = トリム(fgets(STDIN));

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

休憩;

}

}while(true);

}

プライベート関数 _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){

する{

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

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

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

}

$this->_mk_question($tmp);

}

プライベート関数 _check_answer($answer){

if($answer === トリム($this->_answer)){

$this->_display("√ お疲れ様でした!n");

$this->_accuracy++;

}その他{

$this->_display(join(" ", $this->_digitals) . "n答えは: {$this->_answer}nn");

}

if($this->_level > 10){

$grades = array(

0 =>「バカ」、

1 =>「バカ」、

2 =>「バカ」、

3 =>「残念」、

4 => 「それほど悪くない」

5 => 「それほど悪くない」

6 =>「悪くない」

7 =>「不可能」、

8 =>「不可能」、

9 =>「信じられない」、

10 =>「信じられない」、

);

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

$this->_display("nn 正答率:" . $score);

true を返します;

}

false を返します;

}

プライベート関数 _mk_question($arr){

ソート($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['2 番目'] = array($arr[$len-2], '2 番目に大きい数値');

$questions['finally_second'] = array($arr[1], '2 番目に小さい数値');

}

shuffle($questions);

$tmp = array_shift($questions);

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

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

$this->_display("先ほど表示された {$tmp[1]} を入力してください:");

}

プライベート関数 _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){

休憩;

}

}

fwrite(STDOUT, "n");

}

それ以外{

fwrite(STDOUT, $str);

}

}

}

?>



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート