From 89a2acbccdd9d15f6238662c8b2cebcf475c38aa Mon Sep 17 00:00:00 2001 From: arun Date: Thu, 4 Jan 2007 18:23:47 +0000 Subject: [PATCH] bugfix: names and table show up all the time now; --- css/standard.css | 151 +++++++++++++++++++------------- functions.php | 58 ++++++++++-- index.php | 72 ++++++++------- pics/arrow.svg | 224 +++++++++++++++++++++++++++++++++++++++++++++++ pics/arrow0.png | Bin 0 -> 3300 bytes pics/arrow1.png | Bin 0 -> 3435 bytes pics/arrow2.png | Bin 0 -> 3356 bytes pics/arrow3.png | Bin 0 -> 3490 bytes pics/table0.png | Bin 15770 -> 0 bytes pics/table1.png | Bin 16095 -> 0 bytes pics/table2.png | Bin 15725 -> 0 bytes pics/table3.png | Bin 16214 -> 0 bytes 12 files changed, 407 insertions(+), 98 deletions(-) create mode 100644 pics/arrow.svg create mode 100644 pics/arrow0.png create mode 100644 pics/arrow1.png create mode 100644 pics/arrow2.png create mode 100644 pics/arrow3.png delete mode 100644 pics/table0.png delete mode 100644 pics/table1.png delete mode 100644 pics/table2.png delete mode 100644 pics/table3.png diff --git a/css/standard.css b/css/standard.css index 368bd52..1e18e61 100644 --- a/css/standard.css +++ b/css/standard.css @@ -15,8 +15,52 @@ } .card img { width:8em; } +/* display the table and the names */ +div.table { + position:absolute; + margin:0; + padding:0; +/* border: 5px solid blue;*/ + top: 14em; + left: 20em; +} + +div.table img { + height:20em; + width:20em; + z-index:9; +} +div.table span { +/* background-color:green;*/ + position:absolute; +} +div.table span.table0 { + top:10em; + left:-5em; + text-align:right; +} +div.table span.table1 { + top:-2em; + left: 0em; + width:20em; + text-align:center; +} +div.table span.table2 { + top:10em; + left:21em; + text-align:left; + vertical-align:center; +} +div.table span.table3 { + top:23em; + left: 0em; + width:20em; + text-align:center; +} + + -ul.oldtrick { +ul.tricks { position:relative; list-style:none; margin:3px; @@ -26,123 +70,108 @@ ul.oldtrick { } -ul.oldtrick a { text-decoration:none; color:#000;} +ul.tricks a { text-decoration:none; color:#000;} -ul.oldtrick li { +ul.tricks li { /*background-color:blue;*/ margin:0.2em 0.5em; display:inline; } -ul.oldtrick li:hover { +ul.tricks li:hover { background-color: yellow; } -ul.oldtrick li div.table img.table { + +ul.tricks li div.trick { position:absolute; margin:0; padding:0; - top: 4em; - left: 4em; - height:22em; - z-index:-2; +/* border: 5px solid green;*/ + top: 8em; + left: 20em; + height:20em; + width:20em; + z-index:9; + display:none; } -ul.oldtrick li div.table { +ul.tricks li div.trick img.arrow { position:absolute; margin:0; padding:0; - /*border: 5px solid green;*/ - top: 5em; - left: 18em; - height:28em; - width:28em; - z-index:9; - display:none; + top: 4em; + left: 3em; + height:14em; + z-index:-2; } hr {clear:both;} -/*ul.oldtrick li:hover div.table{ display:block; }*/ +/*ul.tricks li:hover div.table{ display:block; }*/ -ul.oldtrick li div div.card0 { +ul.tricks li div div.card0 { position:absolute; margin:0; padding:0; /*border: 1px solid red;*/ - top: 14em; - right:26em; + top: 9em; + right:27em; } -ul.oldtrick li div div.card1 { +ul.tricks li div div.card1 { position:absolute; margin:0; padding:0; /*border: 1px solid red;*/ - top: 0; - left:0em; + top: -3em; + left:-3em; width:28em; text-align:center; } -ul.oldtrick li div div.card2 { +ul.tricks li div div.card2 { position:absolute; margin:0; padding:0; /*border: 1px solid red;*/ - top: 14em; - right:-1em; + top: 9em; + right:-2em; } -ul.oldtrick li div div.card3 { +ul.tricks li div div.card3 { position:absolute; margin:0; padding:0; /*border: 1px solid red;*/ - top: 29em; - left:0; + top: 20em; + left:-3em; width:28em; text-align:center; } -ul.oldtrick li div div img { +ul.tricks li div div img { position:absolute; height:6em; margin:0; padding:0; } -ul.oldtrick li div div.card0 img { +ul.tricks li div div.card0 img { top: -2em; left:5em; } -ul.oldtrick li div div.card1 img { +ul.tricks li div div.card1 img { top: 3em; - left:12em; + left:10em; } -ul.oldtrick li div div.card2 img { +ul.tricks li div div.card2 img { top: -2em; left:-6em; } -ul.oldtrick li div div.card3 img { +ul.tricks li div div.card3 img { top: -6em; - left:12em; + left:10em; } -ul.oldtrick li div div span { - /*background-color:green;*/ -} -ul.oldtrick li div div.card0 span { - text-align:right; -} -ul.oldtrick li div div.card1 span { - text-align:center; -} -ul.oldtrick li div div.card0 span { - text-align:left; -} -ul.oldtrick li div div.card0 span { - text-align:center; -} - -ul.oldtrick li div div span span { +ul.tricks li div div span { position:absolute; background-color:white; margin:0; @@ -151,22 +180,22 @@ ul.oldtrick li div div span span { border: 1px solid yellow; z-index:11; } -ul.oldtrick li div div.card0 span span{ +ul.tricks li div div.card0 span{ top:1em; - left:-14em; + left:-10em; border: 3px solid green; } -ul.oldtrick li div div.card1 span span{ - top:-2em; +ul.tricks li div div.card1 span{ + top:0em; left:1em; border: 3px solid green; } -ul.oldtrick li div div.card2 span span{ +ul.tricks li div div.card2 span{ top:-2em; - left:3em; + left:0em; border: 3px solid green; } -ul.oldtrick li div div.card3 span span{ +ul.tricks li div div.card3 span{ top:1em; left:3em; border: 3px solid green; diff --git a/functions.php b/functions.php index c4305b5..a6ee160 100644 --- a/functions.php +++ b/functions.php @@ -17,7 +17,7 @@ function mymail($To,$Subject,$message) function myisset() { /* returns 1 if all names passed as args are defined by a GET or POST statement, - * else it returns 0 + * else return 0 */ $ok = 1; @@ -32,6 +32,23 @@ function myisset() return $ok; } +function pos_array($c,$arr) +{ + $ret = 0; + + $i = 0; + foreach($arr as $a) + { + $i++; + if($a == $c) + { + $ret = $i; + break; + } + } + return $ret; +} + function is_trump($c,$game) { switch($game) @@ -111,22 +128,49 @@ function compare_cards($a,$b,$game) case "jack": break; case "queen": - if(is_trump($a,$game) && $a<=$b) + if(is_trump($a,$game) && is_trump($b,$game) && $a<=$b) return 1; - else if(is_trump($a,$game)) + else if(is_trump($a,$game) && is_trump($b,$game) ) return 0; else { /*$a is not a trump */ if(is_trump($b,$game)) return 0; else - { - if(is_same_suite($a,$b,$game)) - if($a<=$b) + { /* both no trump */ + /* both clubs? */ + $posA = pos_array($a,array('27','28','29','30','31','32','11','12','33','34')); + $posB = pos_array($b,array('27','28','29','30','31','32','11','12','33','34')); + if($posA && $posB) + if($posA <= $posB) return 1; else return 0; - + /* both spades? */ + $posA = pos_array($a,array('35','36','37','38','39','40','13','14','41','42')); + $posB = pos_array($b,array('35','36','37','38','39','40','13','14','41','42')); + if($posA && $posB) + if($posA <= $posB) + return 1; + else + return 0; + /* both hearts? */ + $posA = pos_array($a,array('43','44','15','16','45','46', '1', '2','47','48')); + $posB = pos_array($b,array('43','44','15','16','45','46', '1', '2','47','48')); + if($posA && $posB) + if($posA <= $posB) + return 1; + else + return 0; + /* both diamonds? */ + $posA = pos_array($a,array('19','20','21','22','23','24','17','18','25','26')); + $posB = pos_array($b,array('19','20','21','22','23','24','17','18','25','26')); + if($posA && $posB) + if($posA <= $posB) + return 1; + else + return 0; + /* not the same suit and no trump: a wins */ return 1; } diff --git a/index.php b/index.php index 29b3eb1..550144f 100644 --- a/index.php +++ b/index.php @@ -234,8 +234,11 @@ else if(myisset("me")) $ok=0; if($ok) - DB_set_game_status_by_gameid($gameid,'play'); - + { + /* TODO: check what kind of game we are playing */ + DB_set_game_status_by_gameid($gameid,'play'); + } + break; case 'play': case 'gameover': @@ -280,19 +283,35 @@ else if(myisset("me")) * only play a card after everyone is ready to play */ } + /* display the table and the names */ + $result = mysql_query("SELECT User.fullname as name,". + " Hand.position as position ". + "FROM Hand ". + "LEFT JOIN User ON User.id=Hand.user_id ". + "WHERE Hand.game_id='".$gameid."' ". + "ORDER BY position ASC"); + + echo "
\n". + " \"table\"\n"; + while($r = mysql_fetch_array($result,MYSQL_NUM)) + { + $name = $r[0]; + $pos = $r[1]; + + echo " $name\n"; + } + echo "
\n"; + /* get everything relevant to display the tricks */ $result = mysql_query("SELECT Hand_Card.card_id as card,". - " User.fullname as name,". " Hand.position as position,". " Play.sequence as sequence, ". - " Hand.hash as hash, ". " Trick.id, ". " Comment.comment ". "FROM Trick ". "LEFT JOIN Play ON Trick.id=Play.trick_id ". "LEFT JOIN Hand_Card ON Play.hand_card_id=Hand_Card.id ". "LEFT JOIN Hand ON Hand_Card.hand_id=Hand.id ". - "LEFT JOIN User ON User.id=Hand.user_id ". "LEFT JOIN Comment ON Play.id=Comment.play_id ". "WHERE Trick.game_id='".$gameid."' ". "ORDER BY Trick.id,sequence ASC"); @@ -306,49 +325,42 @@ else if(myisset("me")) $seq = 1; $pos = 0; - echo "\n