summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarun <arun@nubati.net>2007-06-02 15:40:16 +0000
committerarun <arun>2007-06-02 15:40:16 +0000
commitd638a4e1d0c15ce749430e546d695827c04979f1 (patch)
tree318947d1b68ce13b9f96ff1c9a73fddecba5eab7
parent05c0e5ebd24477c861b06884e60db11672127569 (diff)
downloade-DoKo-d638a4e1d0c15ce749430e546d695827c04979f1.tar.gz
e-DoKo-d638a4e1d0c15ce749430e546d695827c04979f1.tar.bz2
e-DoKo-d638a4e1d0c15ce749430e546d695827c04979f1.zip
new feature: added checks for re/contra/90 etc. ; fixed: some measages were outdated
-rw-r--r--functions.php45
-rw-r--r--index.php10
-rw-r--r--output.php22
3 files changed, 65 insertions, 12 deletions
diff --git a/functions.php b/functions.php
index f33dd1c..418591d 100644
--- a/functions.php
+++ b/functions.php
@@ -649,7 +649,48 @@ function sort_comp($a,$b)
function can_call($what,$hash)
{
- return 1;
+ global $RULES;
+
+ /*TODO: check if this already has been call by teammate */
+
+ $gameid = DB_get_gameid_by_hash($hash);
+ $gametype = DB_get_gametype_by_gameid($gameid);
+
+ $NRcards = count(DB_get_hand($me));
+
+ $NRallcards = 0;
+ for ($i=1;$i<5;$i++)
+ {
+ $user = DB_get_hash_from_game_and_pos($gameid,$i);
+ $NRallcards += count(DB_get_hand($user));
+ };
+
+ /* in case of a wedding, everything will be delayed by an offset */
+ $offset = 0;
+ if($gametype=="wedding")
+ {
+ $offset = DB_get_sickness_by_gameid($gameid);
+ if ($offset <0) /* not resolved */
+ return 0;
+ };
+
+ switch ($RULES["call"])
+ {
+ case "1st-own-card":
+ if( 4-($what/30) >= 12 - $NRcards + $offset)
+ return 1;
+ break;
+ case "5th-card":
+ if( 27+4*($what/30)) <= $NRallcards + $offset*4)
+ return 1;
+ break;
+ case "9-cards":
+ if( ($what/10) <= $NRcards + $offset)
+ return 1;
+ break;
+ }
+
+ return 0;
}
-?> \ No newline at end of file
+?>
diff --git a/index.php b/index.php
index 8e21ae6..10416f1 100644
--- a/index.php
+++ b/index.php
@@ -243,7 +243,9 @@ else if(myisset("me"))
$RULES["dullen"] = $r[2];
$RULES["schweinchen"] = $r[3];
-
+ $RULES["call"] = "1st-own-card";
+
+
/* get some infos about the game */
$gametype = DB_get_gametype_by_gameid($gameid);
$gamestatus = DB_get_game_status_by_gameid($gameid);
@@ -333,7 +335,7 @@ else if(myisset("me"))
display_card($card,$PREF["cardset"]);
echo "</p>\n";
- check_for_sickness($me,$mycards);
+ output_check_for_sickness($me,$mycards);
/* move on to the next stage*/
DB_set_hand_status_by_hash($me,'check');
@@ -1461,7 +1463,9 @@ else if(myisset("me"))
" <input type=\"radio\" name=\"call30\" value=\"yes\" /> ";
if( can_call(0,$me) )
echo " 0:".
- " <input type=\"radio\" name=\"call0\" value=\"yes\" /> ";
+ " <input type=\"radio\" name=\"call0\" value=\"yes\" /> ".
+ " no call:".
+ " <input type=\"radio\" name=\"call0\" value=\"no\" /> ";
echo "<br />\nA short comments:<input name=\"comment\" type=\"text\" size=\"30\" maxlength=\"50\" />\n";
echo "<input type=\"hidden\" name=\"me\" value=\"$me\" />\n";
diff --git a/output.php b/output.php
index 8288ee2..75d0135 100644
--- a/output.php
+++ b/output.php
@@ -106,6 +106,7 @@ function output_ask_for_new_game($playerA,$playerB,$playerC,$playerD,$oldgameid)
echo " <input type=\"hidden\" name=\"PlayerD\" value=\"$playerD\" />\n";
echo " <input type=\"hidden\" name=\"dullen\" value=\"".$RULES["dullen"]."\" />\n";
echo " <input type=\"hidden\" name=\"schweinchen\" value=\"".$RULES["schweinchen"]."\" />\n";
+ echo " <input type=\"hidden\" name=\"call\" value=\"".$RULES["call"]."\" />\n";
echo " <input type=\"hidden\" name=\"followup\" value=\"$oldgameid\" />\n";
echo " <input type=\"submit\" value=\"keep playing\" />\n";
echo "</form>\n";
@@ -161,7 +162,16 @@ function output_form_for_new_game($names)
</li>
</ul>
</p>
-
+ <p> Call Re/Contra, etc.:
+ <ul>
+ <li><input type="radio" name="call" value="1st-own-card" checked="checked" />
+ Can call re/contra on the first <strong>own</strong> card played, 90 on the second, etc.</li>
+ <li><input type="radio" name="call" value="5th-card" />
+ Can call re/contra until 5th card is played, 90 until 9th card is played, etc.</li>
+ <li><input type="radio" name="call" value="9-cards" />
+ Can call re/contra until 5th card is played, 90 if player still has 9 cards, etc.</li>
+ </ul>
+ </p>
<input type="submit" value="start game" />
</form>
<?php
@@ -189,11 +199,9 @@ function display_link_card($card,$dir="english",$type="card")
return;
}
-function check_for_sickness($me,$mycards)
+function output_check_for_sickness($me,$mycards)
{
?>
- <p> Solo will work, but the first player will not change. Nothing else implemented. </p>
-
<form action="index.php" method="post">
do you want to play solo?
@@ -211,7 +219,7 @@ function check_for_sickness($me,$mycards)
<?php
- echo "wedding?";
+ echo "Wedding?";
if(check_wedding($mycards))
{
echo " yes<input type=\"radio\" name=\"wedding\" value=\"yes\" checked=\"checked\" />";
@@ -222,7 +230,7 @@ function check_for_sickness($me,$mycards)
echo " no <input type=\"hidden\" name=\"wedding\" value=\"no\" /> <br />\n";
};
- echo "do you have poverty?";
+ echo "Do you have poverty?";
if(count_trump($mycards)<4)
{
echo " yes<input type=\"radio\" name=\"poverty\" value=\"yes\" checked=\"checked\" />";
@@ -233,7 +241,7 @@ function check_for_sickness($me,$mycards)
echo " no <input type=\"hidden\" name=\"poverty\" value=\"no\" /> <br />\n";
};
- echo "do you have too many nines?";
+ echo "Do you have too many nines?";
if(count_nines($mycards)>4)
{
echo " yes<input type=\"radio\" name=\"nines\" value=\"yes\" checked=\"checked\" />";