競技かるた(PHP風)

なんとなく、競技かるたの流れをPHP言語で書いてみた。合っているかは分からないけど、多分こんな感じかな……

<?php
$myfuda = 25;
$tekifuda = 25;
$karafuda = 50;
$defuda = 50;
while($myfuda && $tekifuda){
    srand((double)microtime() * 1000000);
    $temp_num = rand(1, $karafuda + $defuda);
    //デバッグ開始
    print '$myfuda = '.$myfuda."<br>";
    print '$tekifuda = '.$tekifuda."<br>";
    print '$karafuda = '.$karafuda."<br>";
    print '$defuda = '.$defuda."<br>";
    print "--------------------------<br>";
    //デバッグ終了
    //空札だったとき
    if($temp_num < = $karafuda){
        $karafuda--;
    }
    //出札だったとき
    else{
        $defuda--;
        srand((double)microtime() * 1000000);
        $temp_num = rand(1, $myfuda + $tekifuda);
        //自陣が出たとき
        if($temp_num <= $myfuda){
            $myfuda--;
            if(!funcGetFuda()){
                $myfuda++;
                $tekifuda--;
            }
        }
        //相手陣が出たとき
        else{
            $tekifuda--;
            if(funcGetFuda()){
                $myfuda--;
                $tekifuda++;
            }
        }
    }
    switch(funcOtetsuki()){
    case 1:
    if($tekifuda){
        $tekifuda--;
        $myfuda++;
    }
    case 2:
    if($tekifuda){
        $tekifuda--;
        $myfuda++;
    }
    break;
    case 3:
    if($myfuda){
        $myfuda--;
        $tekifuda++;
    }
    case 4:
    if($myfuda){
        $myfuda--;
        $tekifuda++;
    }
    break;
    }
}
if(!$myfuda) print $tekifuda."枚差の勝利です!";
else print $myfuda."枚差負けです……";

function funcGetFuda(){
    //自分が取った場合はtrueを返す関数
    //以下仮設定
    srand((double)microtime() * 1000000);
    return rand(0,1) ? true : false;
}
function funcOtetsuki(){
    //お手つきなし……0、共お手……0
    //自分が空ダブ……1、自分がお手つき……2、
    //相手が空ダブ……3、相手がお手つき……4、を返す関数
    //以下仮設定
    srand((double)microtime() * 1000000);
    $temp_num = rand(1,100);
    if($temp_num == 1) return 1;
    elseif($temp_num == 2) return 3;
    elseif($temp_num <= 6) return 2;
    elseif($temp_num <= 10) return 4;
    else return 0;
}
?>

そのうち、JavaScriptやFlashなんかで競技かるたのゲームなんか作ってみたいなー。まぁ、読みソフトが完成したらの話だけど……

5 Comments

  1. あ、これだと出札のときでも空ダブの状況が起こりえるな……まぁ、いっか。

  2. 暇人め。(笑)
    マニアックすぎて誰もつっこんでくれないのね。
    こういうギャグおれは好きだなぁ。

  3. 別に暇じゃないんですけどね~(; ̄ー ̄A
    思いついたら、なんとなくやってみたくなったもので。
    確かに、かるたとPHPの両方を分かっている人は少ないでしょうからね。

  4. 最後にend subっているんじゃなかった??
    C言語だったかな?

  5. 『End Sub』がいるのはVB系の言語ですね。

Sorry, the comment form is closed at this time.