×
Биржа Crossover в России: низкий старт. (Сегодня)

Внимание: "турниры" и тесты, хамство и спам от Crossover.com.

Покер на костях и на пыхе

Больше
3 года 4 мес. назад - 3 года 2 мес. назад #1 от Aleksej
Здесь привожу код игры "Покер на костях"; демку и недлинное описание вы можете увидеть в блоге, welcome по ссылке .


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Poker Dice</title>
</head>
<body style="background-color:green;">
<form method="POST">
<?php
$secondroll = $_POST['secondroll'];
if(empty($_POST["cash"])) $cash = 100;
else $cash = $_POST["cash"];
rolldie();
if($_POST["secondroll"] == "1") {
print "<h2>Second roll</h2>\n";
$secondroll = "0";
evaluate();
} else {
print "<h2>First Roll</h2>\n";
$secondroll = "1";
}
printstuff();
function rolldie(){
global $die, $secondroll, $keepit;
print"<table border='1'>";
for($i=0;$i<5;$i++){
if(!isset($_POST["keepit"][$i])){
$die[$i] = rand(1,6);
} else {
$die[$i] = $_POST["keepit"][$i];
}// завершаем if
$thefile="$die[$i].png";
print<<<HERE
<td>
<img src = $thefile ><br>
HERE;
if($secondroll == FALSE) {
print "<input type='checkbox' name='keepit[".$i."]' value='".$die[$i]."'>
</td>";
}}
print<<<HERE
</tr></td>
<tr>
    <td colspan="5">
    <center>
    <input type="submit">
    </center>
    </td></tr>
    </table>
HERE;
}
function evaluate(){
global $die, $cash;
$payoff=0;
$cash-=2;
$numVals=array(6);
for($theval=1;$theval<=6;$theval++){
for($dienum=0;$dienum<5;$dienum++){
if($die[$dienum]==$theval){
$numVals[$theval]++;}}}
for($i=1;$i<=6;$i++){
print"$i:$numVals[$i]<br>";}
$numPairs = 0;
$numThrees = 0;
$numFours = 0;
$numFives = 0;
for($i = 1; $i <= 6; $i++){
switch($numVals[$i]){
case 2:
$numPairs++;
break;
case 3:
$numThrees++;
break;
case 4:
$numFours++;
break;
case 5:
$numFives++;
break;}}
if($numPairs == 2) {
print "You have two pairs!\n";
$payoff = 1;
}// end if
if($numThrees == 1) {
if($numPairs == 1) {
print "You have a full house! \n";
$payoff = 5;
} else {
print "You have three of a kind! \n";
$payoff = 2;
}// end if for double
}// end if for thriple
if($numFours == 1) {
print "You have four of a kind\n";
$payoff = 5;
}// end if
if($numFives == 1) {
print "You got a five of a kind !\n";
$payoff = 10;
}// end if
if (($numVals[1] == 1)
&& ($numVals[2] == 1)
&& ($numVals[3] == 1)
&& ($numVals[4] == 1)
&& ($numVals[5] == 1)) {
print "You have a straight!\n";
$payoff = 10;
}// end if
if (($numVals[2] == 1)
&& ($numVals[3] == 1)
&& ($numVals[4] == 1)
&& ($numVals[5] == 1)
&& ($numVals[6] == 1)) {
print "You have a straight\n";
$payoff = 10;
}// end if
print "You bet 2\n";
print "Payoff is $payoff\n";
$cash += $payoff;
}
function printstuff(){
global $cash, $secondroll;
print"<br>Деньги $cash<br>";
print<<<HERE
<input type="hidden" name="secondroll" value="$secondroll">
<input type="hidden" name="cash" value="$cash">
HERE;
}
?>
</form>
</body>
</html>
Последнее редактирование: 3 года 2 мес. назад от p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 3 мес. назад #2 от Aleksej
Мне подсказывают, что более адекватно было бы сравнивать не поэлементно, а -
сократить и сравнивать прямо массивы в пыхе:

php -r 'if (Array(1, 2, 3, 4) == Array(1, 2, 3, 4)) { echo "equal";}else { echo "not equal"; }'


:)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.