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 ]