From b568d14fe83e919b41452d8ae5b57a7dedc671cf Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Tue, 2 Dec 2008 23:29:29 -0800 Subject: [PATCH] NEW FEATURE: new sorting algorithm you can now sort your hand "low to high" and change your default using the setting dialog --- include/db.php | 8 ++++++++ include/functions.php | 26 ++++++++++++++++++++++---- include/preferences.php | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/include/db.php b/include/db.php index 514bde2..de549a5 100644 --- a/include/db.php +++ b/include/db.php @@ -729,6 +729,14 @@ function DB_get_PREF($myid) else $PREF['autosetup']='no'; + /* Sorting */ + $r = DB_query_array("SELECT value FROM User_Prefs". + " WHERE user_id='$myid' AND pref_key='sorting'" ); + if($r) + $PREF['sorting'] = $r[0]; + else + $PREF['sorting']='high-low'; + return $PREF; } diff --git a/include/functions.php b/include/functions.php index 5c23958..466b4ae 100644 --- a/include/functions.php +++ b/include/functions.php @@ -608,21 +608,39 @@ function set_gametype($gametype) function mysort($cards,$gametype) { - usort ( $cards, "sort_comp" ); + global $PREF; + if(isset($PREF['sorting'])) + if($PREF['sorting']=='high-low') + usort ( $cards, 'sort_comp_high_low' ); + else + usort ( $cards, 'sort_comp_low_high' ); + else + usort ( $cards, 'sort_comp_high_low' ); return $cards; } -function sort_comp($a,$b) +function sort_comp_high_low($a,$b) { global $CARDS; $ALL = array(); - $ALL = array_merge($CARDS["trump"],$CARDS["diamonds"],$CARDS["clubs"], - $CARDS["hearts"],$CARDS["spades"]); + $ALL = array_merge($CARDS['trump'],$CARDS['diamonds'],$CARDS['clubs'], + $CARDS['hearts'],$CARDS['spades']); return pos_array($a,$ALL)-pos_array($b,$ALL); } +function sort_comp_low_high($a,$b) +{ + global $CARDS; + + $ALL = array(); + $ALL = array_merge($CARDS['trump'],$CARDS['diamonds'],$CARDS['clubs'], + $CARDS['hearts'],$CARDS['spades']); + + return -pos_array($a,$ALL)+pos_array($b,$ALL); +} + function can_call($what,$hash) { global $RULES; diff --git a/include/preferences.php b/include/preferences.php index 67e2eec..775c4b2 100644 --- a/include/preferences.php +++ b/include/preferences.php @@ -92,6 +92,24 @@ if(myisset("autosetup")) } } +if(myisset("sorting")) + { + $sorting = $_REQUEST['sorting']; + if($sorting != $PREF['sorting']) + { + /* check if we already have an entry for the user, if so change it, if not create new one */ + $result = DB_query("SELECT * from User_Prefs". + " WHERE user_id='$myid' AND pref_key='sorting'" ); + if( DB_fetch_array($result)) + $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($sorting). + " WHERE user_id='$myid' AND pref_key='sorting'" ); + else + $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','sorting',". + DB_quote_smart($sorting).")"); + $changed_sorting=1; + } + } + if(myisset("password0") && $_REQUEST["password0"]!="" ) { @@ -166,6 +184,22 @@ echo " \n"; if($changed_autosetup) echo "changed"; echo " \n"; +echo " Sorting: "; + +echo " \n"; +if($changed_sorting) echo "changed"; +echo " \n"; echo " Card set: "; echo "