タグ別アーカイブ: クソソース

ふざけて作ったクイズphp

某大学生とフザケながら組んだクイズのphpソースコード。ターミナル上で動くよ(´^ω^`)

#!/usr/bin/php
 <?php
$put = NULL;
$dataset = array(
    0=>array(
        "question"=>"某世界最強生主の最初のあだ名は?",
        "select"=>array(1=>"ぷるや",2=>"ひつ国ブーメン王子",3=>"フケ栽培マン"),
        "answer"=>1,
    ),
    1=>array(
        "question"=>"このクソソースを組んだのは誰?",
        "select"=>array(1=>"がんだまにあ",2=>"十円玉",3=>"白菜"),
        "answer"=>2,
    ),
    2=>array(
        "question"=>"一番見た目でうるさそうなものを選べ",
        "select"=>array(1=>"淫乱テディベア",2=>"つるぺたツンデレニューハーフ",3=>"はっwかっwたっwのっwしおっっっwwwww"),
        "answer"=>3,
    ),
);
echo "ああ・・・、遂に実行しちゃったのね。\n\n";
for ($i=0;$i<count($dataset);$i++)
{
    echo $dataset[$i]["question"]."\n次の3つから選んでね(´^ω^`)\n\n";
    foreach ($dataset[$i]["select"] as $select_key=>$select_val)
    {
        echo $select_key.":".$select_val."\n";
    }
    echo "\n\n";
    $put = trim(fgets(STDIN));
    if (ctype_digit($put)===FALSE || $put < 1 || $put > 3)
    {
        echo "\nふざけるな、真面目にやれ。\n\n";
        $i-=1;
        continue 1;
    }
    else if ($put==$dataset[$i]["answer"])
    {
        echo "\nおめでた(*´゚д゚`*) \n\n";
    }
    else
    {
        echo "\n残念でした\(^ヮ^)/\n\n";
    }
}
?>

phpのクソソースをクソソースで書き直した例

phpの条件文は関数のコールバックを使えますよ・・・、CASE文も例外では御座いません(´・ω・`)
だけど、それを知らずにIF文まみれのクソソースをよこされた暁には・・・ね。
以下ソースコードは、公開しても大丈夫なレベルに色々端折りました(´・ω・`)

<?php
class Campaign extends CI_Controller
{
	public function __construct()
	{
		parent::__construct();
	}
	public function _remap($mode="index",$param=array())
	{
		switch ($mode)
		{
			// キャンペーンNoがリクエストされた場合
			case is_int($mode):
				// キャンペーンNoのテンプレートがない→404
				// このエラーコード出力は通常モデル化しています
				if (!file_exists("view/Campaign/no/template_".$mode.".html"))
				{
					$data = array(
						"HTTP_Code" => 404,
						"ErrDoc"    => "ご指定のページはありません。"
					);
					$this->load->view("view/Common/error.html",$data);
				}
				// 通常処理
				else
				{
					// No.18 : ツイッターのアクセス数降順にユーザリストを並べ替える
					// 上でSWITCH文かけているから、もっと上手な分岐があるはず(´・ω・`)
					if ($mode == "18")
					{
						$handle = @fopen("controller/Campaign/18/twi_counts","r");
						while ($dump = fgetcsv( $handle )) $twi_data_tmp[] = $dump;
						@fclose($handle);
						foreach ($twi_data_tmp as $key=>$val)
						{
							$sort_point[$key] = $val[5];
						}
						$data["twi_data"] = array_multisort($sort_point ,SORT_DESC,$twi_data_tmp);
						unset($twi_data_tmp,$sort_point);
						// その他処理
					}
					// 共通処理として、$modeに沿ったビューを展開
					$this->load->view("view/Campaign/no/template_".$mode.".html",$data);
					// 以下キャンペーンNo毎に独自処理を書いていく
				}
				// 以下No以外のキャンペーンに独自処理を書いていく
				break;
			}
			// index
			default:
				if ($handle = opendir("view/Campaign/no/"))
				{
					while (false !== ($file = readdir($handle)))
					{
						if ($file !== "." && $file !== "..")
						{
							// テンプレートからNo部分のみ切り抜いて配列化
							$templates[] = str_replace(array("template_",".html"),array(),$file);
						}
					}
				}
				$data["no_list"] = $templates;
				$this->load->view("view/Campaign/index.html",$data);
				break;
		}
	}
}