From: Arun Persaud Date: Wed, 3 Dec 2008 07:29:29 +0000 (-0800) Subject: NEW FEATURE: new sorting algorithm X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=commitdiff_plain;h=b568d14fe83e919b41452d8ae5b57a7dedc671cf;ds=sidebyside NEW FEATURE: new sorting algorithm you can now sort your hand "low to high" and change your default using the setting dialog --- 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 "