X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Fbriskin5.phh;h=1a1a8999c3b7d682169cbdee7b208f4e08d518da;hb=215e2a24fbec8d1a6a95dddf617dea99b05676eb;hp=e10cf82ad9e514c96ab2d1ef4ba97d88c330376b;hpb=c5f862d7fbe0458d0bf66fbac37af9ac0e61dfcf;p=brisk.git diff --git a/web/briskin5/Obj/briskin5.phh b/web/briskin5/Obj/briskin5.phh index e10cf82..1a1a899 100644 --- a/web/briskin5/Obj/briskin5.phh +++ b/web/briskin5/Obj/briskin5.phh @@ -22,6 +22,7 @@ * */ define('BIN5_PLAYERS_N', 3); +define('BIN5_CARD_HAND', 3); // normal value 8 define('BIN5_MAX_PLAYERS', BIN5_PLAYERS_N); // define(BIN5_SHM_MIN', (50000 * BIN5_MAX_PLAYERS)); define('BIN5_SHM_MIN', 32768); @@ -308,8 +309,8 @@ class Bin5_table extends Table { // { // $ret = array(); // - // for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { - // // for ($i = 0 ; $i < 40 ; $i++) { + // for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { + // // for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { // $ret[$i] =& new Card($i, 'bunch', 'no_owner'); // } // @@ -321,7 +322,7 @@ class Bin5_table extends Table { { $ret = array(); - for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { + for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { $this->card[$i] = new Card($i, 'bunch', 'no_owner'); } } @@ -333,10 +334,10 @@ class Bin5_table extends Table { mt_srand(make_seed()); - for ($i = (BIN5_PLAYERS_N == 5 ? 40 : 24) - 1 ; $i >= 0 ; $i--) + for ($i = (BIN5_CARD_HAND * BIN5_PLAYERS_N) - 1 ; $i >= 0 ; $i--) $rest[$i] = $i; - for ($i = (BIN5_PLAYERS_N == 5 ? 40 : 24) - 1 ; $i >= 0 ; $i--) { + for ($i = (BIN5_CARD_HAND * BIN5_PLAYERS_N) - 1 ; $i >= 0 ; $i--) { $rn = rand(0, $i); if ($rn == 0) @@ -404,6 +405,17 @@ class Bin5_table extends Table { $this->mazzo = ($this->mazzo + $delta) % BIN5_PLAYERS_N; } + function mult_inc($val) + { + $this->old_mult = $this->mult; + $this->mult += $val; + } + + function mult_set($val) + { + $this->old_mult = $this->mult; + $this->mult = $val; + } function hand_points($idx) { @@ -411,7 +423,7 @@ class Bin5_table extends Table { $tot = 0; - for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { + for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { // for ($i = 0 ; $i < 40 ; $i++) { if ($this->card[$i]->owner != $idx) continue; @@ -445,16 +457,17 @@ class Bin5_table extends Table { return ($ct); } - function rules_engine($bri, $action, $user) + function rules_engine($bri, $curtime, $action, $user) { - GLOBAL $G_all_points; + GLOBAL $G_all_points, $G_dbasetype; $pts = array(); if ($action == BIN5_RULES_ALLPASS) { // return TRUE if all correct $this->old_reason = "Hanno passato tutti."; + $this->old_asta_win = -1; $this->old_pnt = 0; - $this->mult += 1; + $this->mult_inc(1); for ($i = 0 ; $i < PLAYERS_N ; $i++) { $pts[$i] = 0; } @@ -467,8 +480,9 @@ class Bin5_table extends Table { log_wr(sprintf("GIOCO FINITO !!!")); $this->old_reason = sprintf("Ha lasciato %s perché aveva al massimo 2 punti.", xcape($user->name)); + $this->old_asta_win = $user->table_pos; $this->old_pnt = 0; - $this->mult += 1; + $this->mult_inc(1); for ($i = 0 ; $i < PLAYERS_N ; $i++) { $pts[$i] = 0; @@ -489,7 +503,7 @@ class Bin5_table extends Table { $this->old_reason = ""; // count points for the temporary 2 teams - for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { + for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { $ctt = $this->card[$i]->value % 10; $own = $this->card[$i]->owner; if ($own == $this->asta_win || $own == $this->friend) @@ -507,7 +521,7 @@ class Bin5_table extends Table { } $this->points_n++; $this->old_pnt = $pro; - $this->mult += 1; + $this->mult_inc(1); // return($pts); break; @@ -539,7 +553,8 @@ class Bin5_table extends Table { } $this->points_n++; $this->old_pnt = $pro; - $this->mult = 0; + $this->old_asta_win = $this->asta_win; + $this->mult_set(0); // return($pts); } while (0); @@ -566,11 +581,10 @@ class Bin5_table extends Table { $plist .= $codes; log_legal($curtime, $user->ip, $user, "STAT:BRISKIN5:FINISH_GAME", $plist); - $this->old_mazzo = $this->mazzo; $this->old_asta_pnt = $this->asta_pnt; - $this->old_mult = $this->mult; - // $this->old_pnt and $this->old_reason are specific - $this->old_asta_win = $this->asta_win; + // $this->old_mazzo is managed by ->game_next(); + // $this->old_mult, $this->old_pnt, $this->old_reason and $this->old_asta_win are specific + $this->old_friend = $this->friend; if ($user->table_orig < TABLES_AUTH_N) { @@ -583,7 +597,7 @@ class Bin5_table extends Table { else { log_points($remote_addr, $curtime, $user, "STAT:BRISKIN5:FINISH_GAME", "DATABASE CONNECTION FAILED"); } - log_points($curtime, $user, "STAT:BRISKIN5:FINISH_GAME", $plist); + log_points($remote_addr, $curtime, $user, "STAT:BRISKIN5:FINISH_GAME", $plist); } $this->game_init(&$bri->user); @@ -1462,7 +1476,7 @@ function calculate_points_old(&$table) $table->old_mult = $table->mult; // count points for the temporary 2 teams - for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { + for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { // for ($i = 0 ; $i < 40 ; $i++) { $ctt = $table->card[$i]->value % 10; $own = $table->card[$i]->owner; @@ -1583,10 +1597,10 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again) if ($is_transition) { // && $user->subst == "asta" superfluo $ret .= "|"; - for ($i = 0 ; $i < 8 ; $i++) { + for ($i = 0 ; $i < BIN5_CARD_HAND ; $i++) { for ($e = 0 ; $e < BIN5_PLAYERS_N ; $e++) { $ct = 0; - for ($o = 0 ; $o < (BIN5_PLAYERS_N == 5 ? 40 : 24) && $ct < $i+1 ; $o++) { + for ($o = 0 ; $o < (BIN5_CARD_HAND * BIN5_PLAYERS_N) && $ct < $i+1 ; $o++) { // for ($o = 0 ; $o < 40 && $ct < $i+1 ; $o++) { if ($table->card[$o]->owner == (($e + $table->gstart) % BIN5_PLAYERS_N)) { $ct++; @@ -1609,7 +1623,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again) $ontabl = array(-1,-1,-1,-1,-1); $cards = array(); - for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { + for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { // for ($i = 0 ; $i < 40 ; $i++) { if ($table->card[$i]->stat == 'hand') { if ($table->card[$i]->owner == $table_pos) { @@ -1635,7 +1649,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again) $oursarg = ""; for ($i = 0 ; $i < $inhand[$table_pos] ; $i++) $oursarg .= ($i == 0 ? "" : ", ").$cards[$i]; - for ($i = $inhand[$table_pos] ; $i < 8 ; $i++) + for ($i = $inhand[$table_pos] ; $i < BIN5_CARD_HAND ; $i++) $oursarg .= ($i == 0 ? "" : ", ")."-1"; $ret .= sprintf('card_setours(%s);', $oursarg); @@ -1643,7 +1657,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again) for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) { /* Qui sotto al posto di + 1 c'era + ->gstart ... credo in modo errato */ $ret .= sprintf('cards_dispose(%d,%d,%d);', $i, - ($inhand[$i] <= 8 ? $inhand[$i] : 8) , $taked[$i]); + ($inhand[$i] <= BIN5_CARD_HAND ? $inhand[$i] : BIN5_CARD_HAND), $taked[$i]); if ($ontabl[$i] != -1) { $ret .= sprintf('card_place(%d,%d,%d,%d,%d);',$i, $inhand[$i], @@ -1721,7 +1735,7 @@ function calculate_winner(&$table) $cur_val = 100; $cur_seed = $table->briscola - ($table->briscola % 10); - for ($i = 0 ; $i < (BIN5_PLAYERS_N == 5 ? 40 : 24) ; $i++) { + for ($i = 0 ; $i < (BIN5_CARD_HAND * BIN5_PLAYERS_N) ; $i++) { // for ($i = 0 ; $i < 40 ; $i++) { if ($table->card[$i]->stat != "table") continue;