[ source / home ]


source : キングパルサー 設定判別


#!/usr/bin/perl
# キングパルサー BIG中設定判別 シミュレーション

$cginame = 'king_p_big.cgi';
$title   = 'キングパルサー 設定判別シミュレーション';

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
    read (STDIN, $s, $ENV{'CONTENT_LENGTH'});
}
$s =~ s/s=//;

print "Content-Type: text/html\n\n";

# ヘッダとフォームの表示
print <<"__ FORM __";
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html lang='ja'>
<head>
<meta http-equiv='Content-Type' content="text/html; charset=shift_jis">
<title>jug7.com - cgi $title</title>
 <style type="text/css"> <!--
   A:hover {color:#ff0000;}
 --></style>
</head>
<body text='#000000' bgcolor='#ffffff' link='#0000ff' alink='#ff0000' vlink='#0000cc'>
<div align='right'>[ <a href='king_p_big_memo.html'>memo</a> / <a href='king_p_big.html'>source</a> / <a href='../index.html'>home</a> ]</div>
<br><br>
<div align='center'><h2>$title</h2></div>
<hr width='70%'><center>
<form action='$cginame' method='POST'>
<table border=0 align='center' width='80%'>
<tr valgin='top'><td>
設定 <input type='text' maxlength=1  name='s' size=8 value='$s'><br><br><input type='submit' value="開始">
</td><td>
<table border=1 cellspacing=0><caption><font size=2>使用データ</font></caption>
<tr bgcolor='#ffffcc'><td nowrap><font size=2>設定</font></td><td nowrap><font size=2>ベル確率</font></td>
<td nowrap><font size=2>ハズレ確率</font></td><td><font size=2>JACIN</font></td><td><font size=2>チェリー</font></td>
<td><font size=2>オレンジ</font></td><td nowrap><font size=2>ハズレ / ベル<br>*100</font></td>
</tr>
<tr><td align='center'>1〜4</td><td align='right'>1/2.276</td>
<td align='right'>1/9.729</td><td algin='right' rowspan=3>1/3.413</td>
<td algin='right' rowspan=3>1/13.653</td>
<td algin='right' rowspan=3>1/10.923</td><td align='right'><b>23.389 %</b></td>
</tr>
<tr><td align='center'>5</td><td align='right'>1/2.128</td>
<td align='right'>1/13.838</td><td align='right'><b>15.377 %</b></td>
</tr>
<tr><td align='center'>6</td><td align='right'>1/1.998</td>
<td align='right'>1/23.953</td><td align='right'><b>8.341 %</b></td>
</tr>
</table>
</td></tr></table>
</center></form>
<br><br>
__ FORM __


# エラーチェックとGET送信
if ($s<=0 && $s>6)  { $error = 1; $er_msg = '設定は1〜6までです。'; }
if ($s =~ /[^\d]/) { $error = 1; $er_msg = '不適切な文字が記入されています。'; }
if ($ENV{'REQUEST_METHOD'} ne 'POST') { $error = 1; $er_msg = 0; }
if ($er_msg) {
    print q{<center><b><font color='red' size=4>*** ERROR !! ***</font><br><br>},"\n";
    print "$er_msg</b></center>\n";
}
if ($error) {
    print '<br><br><br><br><br>';
    print q{<div align='right'>[ <a href='king_p_big_memo.html'>memo</a> / <a href='king_p_big.html'>source</a> / <a href='../index.html'>home</a> ]</div>};
    exit;
}

# data
$bellr = ($s <= 4) ? 7200 : ($s==5) ? 7700 : 8200;
$hazr  = ($s <= 4) ? 1684 : ($s==5) ? 1184 :  684;

print <<"__ HTML __";
<br><br><table border=1 align='center' cellspacing=0><caption><b><font color='#ff0000'>設定 $s</font></b><br>
<font size=2>(便宜上、1回のBIGで小役ゲームは24Pに固定。)</font></caption>
<tr align='center' bgcolor='#ffffcc'><td><font size=2>BIG回数</font></td>
<td><font size=2>BIG中<br>「総プレイ数 - ベル - ハズレ」</font></td><td><font size=2>ハズレ / ベル *100</font></td>
<td><font size=2>累計BIG中<br>「総プレイ数 - ベル - ハズレ」</font></td><td><font size=2>累計ハズレ / ベル *100</font></td>
</tr>
__ HTML __

#----------------------
# シミュレートと表示
#----------------------
$bellcount = $hazcount = 0;
for($i=1; $i<=40; $i++) {
    for (1..24) {
        $r = int(rand(16384)+1);
        if ($r <= $bellr) { $bellcount++; }
        elsif ($r <= ($bellr+$hazr)) { $hazcount++; }
    }

    $trial = 24 * $i;
    $t_bellcount += $bellcount;
    $t_hazcount  += $hazcount;
    $rate   = &point(($hazcount/$bellcount*100), 2) if $bellcount;
    $t_rate = &point(($t_hazcount/$t_bellcount*100), 2) if $t_bellcount;

    print "<tr><td align='center'>$i</td><td align='center'>24 - $bellcount - $hazcount</td>";
    print "<td align='right'>$rate %</td><td align='center'>$trial - $t_bellcount - $t_hazcount</td>";
    print "<td align='right'>$t_rate %</td></tr>";

    $bellcount = $hazcount = 0;
}

# 再試行ボタンとフッタ
print <<"__ END __";
</table>
<form action='$cginame' method='POST'>
<input type='hidden' name='s' value='$s'>
<center><input type='submit' value="再試行"></center>
</form><br><br>

<div align='right'>[ <a href='king_p_big_memo.html'>memo</a> / <a href='king_p_big.html'>source</a> / <a href='../index.html'>home</a> ]</div>
</body></html>
__ END __

exit;

# 少数を四捨五入して指定の桁にする
sub point {
    my($value, $fig, $x);
    ($value, $fig) = @_;

    $value = int($value * (10 ** $fig) + 0.5) / (10 ** $fig);
    if ($value =~ /(\d+)\.(\d+)/) { $x = $2; }
    elsif ($value !~ /\./)        { $x =''; $value .= '.'; }
    $value = $value.'0' x ( $fig - length($x) );
    return $value;
}


[ source / home ]