jug7.com
[ home / cgi / juggler / column / diary / bbs / link / welcome ]


source : サンダーV 設定判別


#!/usr/bin/perl
# サンダーV 設定判別シミュレーション

$cginame = 'thunder_big.cgi';
$title   = 'サンダーV 設定判別シミュレーション';

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'>
<font size=7><b><font face='Times New Roman,Times'>jug</font><font face='Bookman Old Style,arial black,Helvetica Black'>7</font><font face='Times New Roman,Times'>.com</font></b></font>
<hr color='#00aa00'>

<strong>[ <a href='../index.html'>home</a> / <a href='index.html'>cgi</a> / <a href='../jug/index.html'>juggler</a> / <a href='../column.html'>column</a> / <a href='../diary/index.html'>diary</a> / <a href='bbs.cgi'>bbs</a> / <a href='../link.html'>link</a> / <a href='../intro.html'>welcome</a> ]</strong>
<div align='center'><h2>$title</h2></div>
<hr width='70%'>
<div align='right'>[ <a href='thunder_big_memo.html'>memo</a> / <a href='thunder_big.html'>source</a> ]</div>
<br><br><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>2枚<br>チェリー</font></td><td><font size=2>4枚<br>チェリー</font></td>
<td><font size=2>スイカ</font></td><td nowrap><font size=2>ハズレ / ベル<br>*100</font></td></tr>
<tr align='right'>
 <td align='center'>1</td><td>1/2.206</td>
 <td>1/3.651</td><td rowspan=6>1/3.75</td><td rowspan=6>1/512</td><td rowspan=6>1/512</td>
 <td rowspan=6>1/512</td><td><b>60.423 %</b></td>
</tr>
<tr align='right'><td align='center'>2</td><td>1/2.123</td><td>1/3.907</td><td><b>54.333 %</b></td></tr>
<tr align='right'><td align='center'>3</td><td>1/2.045</td><td>1/4.200</td><td><b>48.689 %</b></td></tr>
<tr align='right'><td align='center'>4</td><td>1/1.973</td><td>1/4.541</td><td><b>43.444 %</b></td></tr>
<tr align='right'><td align='center'>5</td><td>1/1.906</td><td>1/4.942</td><td><b>38.555 %</b></td></tr>
<tr align='right'><td align='center'>6</td><td>1/1.843</td><td>1/5.422</td><td><b>33.989 %</b></td></tr>
</table>

</td></tr></table>
</center></form>
__ FORM __


# エラーチェックとGET
if ($s<=0 or $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='thunder_big_memo.html'>memo</a> / <a href='thunder_big.html'>source</a> ]</div>};
    print q{<strong>[ <a href='../index.html'>home</a> / <a href='index.html'>cgi</a> / <a href='../jug/index.html'>juggler</a> / <a href='../column.html'>column</a> / <a href='../diary/index.html'>diary</a> / <a href='bbs.cgi'>bbs</a> / <a href='../link.html'>link</a> / <a href='../intro.html'>welcome</a> ]</strong>};
    print '</body></html>';
    exit;
}


# 小役データ 総数は 16384
# 2che  4che  suika  jacin
#  32    32    32     4375
@bell = (7426,7719,8012,8305,8598,8891);
@haz  = (4487,4194,3901,3608,3315,3022);

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</td></tr>
__ HTML __


#-----------------------
#  シミュレートと表示
#-----------------------
$bellcount = 0; $hazcount = 0;
for ($i=1; $i<=40; $i++) {
    for (1..24) {
        $r = int(rand(16384)+1);
        if ($r <= $bell[$s-1]) { $bellcount++; }
        elsif ($r <= ($bell[$s-1]+$haz[$s-1])) { $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><td align='right'>$rate %</td>";
    print "<td align='center'>$trial - $t_bellcount - $t_hazcount</td><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><br><br>
<div align='right'>[ <a href='thunder_big_memo.html'>memo</a> / <a href='thunder_big.html'>source</a> ]</div>
<strong>[ <a href='../index.html'>home</a> / <a href='index.html'>cgi</a> / <a href='../jug/index.html'>juggler</a> / <a href='../column.html'>column</a> / <a href='../diary/index.html'>diary</a> / <a href='bbs.cgi'>bbs</a> / <a href='../link.html'>link</a> / <a href='../intro.html'>welcome</a> ]</strong>
</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;
}


[ home / cgi / juggler / column / diary / bbs / link / welcome ]