// POKER
if (!function_exists('str_ireplace')) {
function str_ireplace($search, $replace, $subject, $count = null)
{
// Sanity check
if (is_string($search) && is_array($replace)) {
user_error('Array to string conversion', E_USER_NOTICE);
$replace = (string) $replace;
}
// If search isn't an array, make it one
if (!is_array($search)) {
$search = array ($search);
}
$search = array_values($search);
// If replace isn't an array, make it one, and pad it to the length of search
if (!is_array($replace)) {
$replace_string = $replace;
$replace = array ();
for ($i = 0, $c = count($search); $i < $c; $i++) {
$replace[$i] = $replace_string;
}
}
$replace = array_values($replace);
// Check the replace array is padded to the correct length
$length_replace = count($replace);
$length_search = count($search);
if ($length_replace < $length_search) {
for ($i = $length_replace; $i < $length_search; $i++) {
$replace[$i] = '';
}
}
// If subject is not an array, make it one
$was_array = false;
if (!is_array($subject)) {
$was_array = true;
$subject = array ($subject);
}
// Loop through each subject
$count = 0;
foreach ($subject as $subject_key => $subject_value) {
// Loop through each search
foreach ($search as $search_key => $search_value) {
// Split the array into segments, in between each part is our search
$segments = explode(strtolower($search_value), strtolower($subject_value));
// The number of replacements done is the number of segments minus the first
$count += count($segments) - 1;
$pos = 0;
// Loop through each segment
foreach ($segments as $segment_key => $segment_value) {
// Replace the lowercase segments with the upper case versions
$segments[$segment_key] = substr($subject_value, $pos, strlen($segment_value));
// Increase the position relative to the initial string
$pos += strlen($segment_value) + strlen($search_value);
}
// Put our original string back together
$subject_value = implode($replace[$search_key], $segments);
}
$result[$subject_key] = $subject_value;
}
// Check if subject was initially a string and return it as a string
if ($was_array === true) {
return $result[0];
}
// Otherwise, just return the array
return $result;
}
}
define( "BASEPAGE", basename($_SERVER['SCRIPT_NAME']) );
define( "EOL", defined('PHP_EOL') ? PHP_EOL : "\n" );
$dbres123 = mysql_query("SELECT * FROM `[poker]` WHERE `land`='$data->land'");
$owner = mysql_fetch_object($dbres123);
$cards = array("","h.2","h.3","h.4","h.5","h.6","h.7","h.8","h.9","h.10","h.11","h.12","h.13","h.14","k.2","k.3","k.4","k.5","k.6","k.7","k.8","k.9","k.10","k.11","k.12","k.13","k.14","r.2","r.3","r.4","r.5","r.6","r.7","r.8","r.9","r.10","r.11","r.12","r.13","r.14","s.2","s.3","s.4","s.5","s.6","s.7","s.8","s.9","s.10","s.11","s.12","s.13","s.14");
$kleuren = array("h"=>"harten","k"=>"klaveren","r"=>"ruiten","s"=>"schoppen");
$LK = array("h"=>"REDS", "r"=>"REDS", "k"=>"BLACKS", "s"=>"BLACKS"); // lk = Letterlijke Kleur (rood of zwart) // KAN veranderd worden. Zou niet weten waarom, maar is niet erg
$voor_rules_van=array("11","12","13","14"); // niet veranderen
$voor_rekenen=array(11,12,13,14); // idem
$IMAGE_DIR = "images/gokken/blackjack/"; // Waar je 4 plaatjes (zie Array $kleuren+'.jpg') staan. Als IMAGE_DIR niet leeg is, MOET het eindigen op een '/'
$voor_rules_naar=array("Jacks","Queens","Kings","Ace's");
$MIN_VOOR_ONE_PAIR = 5; // Voorbeeld: als dit 8 is, heb je geen ONE PAIR met twee zessen. Mogelijke waarden: 2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K' of 'A'
$CHEATING_IS_OK = FALSE; // Als CHEATING aanstaat kan je na het inzetten de 10 gekozen kaarten al zien (ipv de 5 die je in je hand hebt)
$ALL_REDS_OR_BLACKS = TRUE; // Eigenlijk onzin: Als al je kaarten rood, of al je kaarten zwart zijn, maar eigenlijk heb je een waardeloze hand, krijg je toch een traktatie
// Voor de iets minder bedeelden onder ons: STRAIGHT: 5 kaarten met opeenvolgende waardes
// FLUSH: 5 kaarten met dezelfde kleur (kaartkleur, niet letterlijke kleur)
// ROYAL is als het de 5 hoogste waarden zijn
$DEBUG_MODE = 0; // Als je fouten tegen komt, kan je DEBUG_MODE aanzetten (1), dan gaat alles stap voor stap
// .. DEBUG info:
// je zou 'YOU LOSE 1' moeten krijgen als je ONE PAIR hebt die te laag is
// je zou 'YOU LOSE 2' moeten krijgen
$UITBETALEN['all_reds_or_blacks'] = 1.5; // Alleen als die aanstaat
$UITBETALEN['one_pair'] = 1.25;
$UITBETALEN['two_pairs'] = 2;
$UITBETALEN['three_of_a_kind'] = 3;
$UITBETALEN['full_house'] = 4;
$UITBETALEN['four_of_a_kind'] = 6;
$UITBETALEN['flush'] = 7;
$UITBETALEN['straight'] = 5;
$UITBETALEN['straight_flush'] = 8;
$UITBETALEN['royal_flush'] = 10;
$MAX_BET = $owner->inzet;
if (isset($_SESSION['poker']['bet']))
$BET = $_SESSION['poker']['bet'];
function Go_Random($max)
{
global $used_randoms;
$id = rand(1,$max);
if (isset($used_randoms) && is_array($used_randoms) && in_array($id,$used_randoms))
Go_Random($max);
else
{
$used_randoms[] = $id;
return $id;
}
}
/* //// //// //// //// */
if (isset($_GET['otherpage']))
{
$_SESSION['poker']['otherpage']=$_GET['otherpage'];
Header("Location: ".BASEPAGE);
exit;
}
if (isset($_POST['action']) && $_POST['action']=="bet" && isset($_POST['bet']) && 0 <= $_POST['bet'] && 0 <= $data->cash-((int)trim($_POST['bet'])) )
{
$inzet = $_POST['bet'];
if($data->cash < $inzet){
$msg = 'Je hebt teweinig geld cash staan!';
}
else if($inzet > $MAX_BET){
$msg = 'Zoveel mag je niet inzetten!';
}
else if(!is_numeric($inzet) OR $inzet < '1'){
$msg = 'Ongeldig bedrag!';
}
else
{
$_SESSION['poker']['bet'] = (int)trim($_POST['bet']);
mysql_query("UPDATE `[users]` SET `cash`=`cash`-'$inzet' WHERE `login`='$data->login'");
Header("Location: ?deal=1");
exit;
}
}
else if (isset($_GET['action']) && $_GET['action']=="unbet")
{
$_SESSION['poker']['step'] = 0;
unset($_SESSION['poker']['bet']);
unset($_SESSION['poker']['cards']);
Header("Location: ".BASEPAGE);
exit;
}
else if (isset($_GET['action']) && $_GET['action']=="start_over")
{
unset($_SESSION['poker']);
Header("Location: ".BASEPAGE);
exit;
}
if (isset($_GET['deal']) && $_GET['deal']==1 && isset($BET))
{
unset($_SESSION['poker']['cards']);
$_SESSION['poker']['score']-=$BET;
$_SESSION['poker']['step'] = 1;
// 10 verschillende wilekeurige kaarten selecteren dmv 10x Go_Random().
// De waarde en kleur van een kaart wordt vastgesteld door een waarde van 1 t/m 52,
// dat is elke waarde (13) voor elke kleur (4). Ze worden opgeslagen in $used_randoms
for ($i=0;$i<10;$i++)
Go_Random(4*13);
if ($DEBUG_MODE==1)
{
echo "
10 randoms:\n";
print_r($used_randoms);
}
// Er staan nu 10 verschillende keys in $used_randoms, van 1 t/m 52
// De array wordt afgelopen om de waarden onder goede naam (kleur en waarde) in een SESSION te stoppen
// De SESSION poker[cards] bevat dadelijk 10 keys, elke key
for ($i=0;$i";
// kleur+waarde van kaart $i, gekregen dmv n uit array cards. Voorbeeld r.8, h.10, k.13
// De waarden van de kaarten zijn nog steeds numeriek (geen K voor King of A voor Ace, etc)
$card0 = $cards[$n];
$card = explode(".",$card0);
if ($DEBUG_MODE==1)
{
echo "&card = $card0 ";
print_r($card);
echo "\n";
}
// En alles in een array om in de SESSION te gooien
$inh = array("num" => $n, "full" => $card0, "kleur" => $card[0], "waarde" => $card[1]);
$_SESSION['poker']['cards'][] = $inh;
}
if ($DEBUG_MODE==1)
{
echo "\nARRAY KAARTEN:\n";
print_r($_SESSION['poker']['cards']);
}
if ($DEBUG_MODE!=1)
Header("Location: ".basename($_SERVER['SCRIPT_NAME']));
exit(' NEXT');
}
if (isset($_POST['nextstep']) && $_POST['nextstep']==2)
{
$_SESSION['poker']['step']=2;
$keepers=0;
for ($i=0;$i<5;$i++)
{
if (isset($_POST['cd'][$i]) && $_POST['cd'][$i]=="on")
{
// $_SESSION['poker']['cards'][$i]['keep']=1;
$keepers++;
}
else
unset($_SESSION['poker']['cards'][$i]);
}
for ($i=9;$i>9-$keepers;$i--)
unset($_SESSION['poker']['cards'][$i]);
/* Er zijn nog 5 kaarten over. */
// hoeveel er van 1 waarde is wordt opgeslagen in $counts (nooit meer dan 5 keys)
$counts = Array();
foreach ($_SESSION['poker']['cards'] AS $i => $ci)
{
$sk[] = $ci['kleur'];
$sw[] = $ci['waarde'];
if (isset($counts[$ci['waarde']]))
$counts[$ci['waarde']]++;
else
$counts[$ci['waarde']]=1;
}
sort($sw);
sort($sk);
// $sk[x] is de kleur van kaart x
// $sw[x] is de numerieke waarde van kaart x
if (max($sw) == min($sw)+4 && $sw[0]+1 == $sw[1] && $sw[1]+1 == $sw[2] && $sw[2]+1 == $sw[3] && $sw[3]+1==$sw[4] && $sw[4]-4==$sw[0])
{
if ($sk[0] == $sk[1] && $sk[1] == $sk[2] && $sk[2] == $sk[3] && $sk[3] == $sk[4])
{
if (min($sw) == 10)
{
// ROYAL FLUSH
if ($DEBUG_MODE==2)
print("ROYAL FLUSH");
$_SESSION['poker']['result'] = "ROYAL FLUSH";
$_SESSION['poker']['winnings']=$UITBETALEN['royal_flush'];
}
else
{
// STRAIGHT FLUSH
if ($DEBUG_MODE==2)
print("STRAIGHT FLUSH");
$_SESSION['poker']['result'] = "STRAIGHT FLUSH";
$_SESSION['poker']['winnings']=$UITBETALEN['straight_flush'];
}
}
else
{
// 5-IN-A-ROW
if ($DEBUG_MODE==2)
print("STRAIGHT");
$_SESSION['poker']['result'] = "STRAIGHT";
$_SESSION['poker']['winnings']=$UITBETALEN['straight'];
}
}
else if ($sk[0] == $sk[1] && $sk[1] == $sk[2] && $sk[2] == $sk[3] && $sk[3] == $sk[4])
{
// FLUSH
// Allemaal dezelfde kleur. Welke kleur is helemaal niet boeiend
if ($DEBUG_MODE==2)
print("FLUSH");
$_SESSION['poker']['result'] = "FLUSH";
$_SESSION['poker']['winnings']=$UITBETALEN['flush'];
}
else if (($sw[0] == $sw[1] && $sw[1] == $sw[2] && $sw[2] == $sw[3]) || ($sw[1] == $sw[2] && $sw[2] == $sw[3] && $sw[3] == $sw[4]))
{
// FOUR-OF-A-KIND
// Vier kaarten met dezelfde waarde
if ($DEBUG_MODE==2)
print("FOUR-OF-A-KIND");
$_SESSION['poker']['result'] = "FOUR-OF-A-KIND";
$_SESSION['poker']['winnings']=$UITBETALEN['four_of_a_kind'];
}
else if (($sw[0] == $sw[1] && $sw[1] == $sw[2] && $sw[3] == $sw[4]) || ($sw[0] == $sw[1] && $sw[2] == $sw[3] && $sw[3] == $sw[4]))
{
// FULL HOUSE
// Twee kaarten met waarde A en drie met waarde B
if ($DEBUG_MODE==2)
print("FULLHOUSE");
$_SESSION['poker']['result'] = "FULLHOUSE";
$_SESSION['poker']['winnings']=$UITBETALEN['full_house'];
}
else if (($sw[0] == $sw[1] && $sw[1] == $sw[2]) || ($sw[1] == $sw[2] && $sw[2] == $sw[3]) || ($sw[2] == $sw[3] && $sw[3] == $sw[4]))
{
// THREE-OF-A-KIND
// Drie kaarten met waarde A en twee niet-dezelfden
if ($DEBUG_MODE==2)
print("THREE-OF-A-KIND");
$_SESSION['poker']['result'] = "THREE-OF-A-KIND";
$_SESSION['poker']['winnings']=$UITBETALEN['three_of_a_kind'];
}
else if (($sw[0] == $sw[1] && $sw[1] != $sw[2] && $sw[1] != $sw[3] && $sw[1] != $sw[4]) || ($sw[1] == $sw[2] && $sw[2] != $sw[0] && $sw[2] != $sw[3] && $sw[2] != $sw[4]) || ($sw[2] == $sw[3] && $sw[3] != $sw[0] && $sw[3] != $sw[1] && $sw[3] != $sw[4]) || ($sw[3] == $sw[4] && $sw[4] != $sw[0] && $sw[4] != $sw[1] && $sw[4] != $sw[2]))
{
if (count($counts)== 3)
{
// TWO PAIRS
if ($DEBUG_MODE==2)
print("TWO PAIRS");
$_SESSION['poker']['result'] = "TWO PAIRS";
$_SESSION['poker']['winnings']=$UITBETALEN['two_pairs'];
}
else if (($sw[0] == $sw[1] && $sw[1] != $sw[2] && $sw[1] != $sw[3] && $sw[1] != $sw[4] && $sw[0]>=(int)str_ireplace($voor_rules_naar,$voor_rekenen,$MIN_VOOR_ONE_PAIR)) || ($sw[1] == $sw[2] && $sw[2] != $sw[0] && $sw[2] != $sw[3] && $sw[2] != $sw[4] && $sw[1]>=(int)str_ireplace($voor_rules_naar,$voor_rekenen,$MIN_VOOR_ONE_PAIR)) || ($sw[2] == $sw[3] && $sw[3] != $sw[0] && $sw[3] != $sw[1] && $sw[3] != $sw[4] && $sw[2]>=(int)str_ireplace($voor_rules_naar,$voor_rekenen,$MIN_VOOR_ONE_PAIR)) || ($sw[3] == $sw[4] && $sw[4] != $sw[0] && $sw[4] != $sw[1] && $sw[4] != $sw[2] && $sw[3]>=(int)str_ireplace($voor_rules_naar,$voor_rekenen,$MIN_VOOR_ONE_PAIR)))
{
// ONE PAIR
if ($DEBUG_MODE==2)
print("ONE PAIR");
$_SESSION['poker']['result'] = "ONE PAIR";
$_SESSION['poker']['winnings']=$UITBETALEN['one_pair'];
}
else if ($ALL_REDS_OR_BLACKS)
{
for ($i=0;$i";
print_r($lk);
print_r($ck);
}
if (count($ck)==1) // Maar 1 verschillende kleur: $lk
{
// BONUS
if ($DEBUG_MODE==2)
print("ALL $lk[0] ;)");
$_SESSION['poker']['result'] = "ALL $lk[0] ;)";
$_SESSION['poker']['winnings']=$UITBETALEN['all_reds_or_blacks'];
}
else
{
// YOU LOSE
if ($DEBUG_MODE==2)
print("YOU LOSE 4");
$_SESSION['poker']['winnings']=0;
}
}
else
{
// YOU LOSE
if ($DEBUG_MODE==2)
print("YOU LOSE 6");
$_SESSION['poker']['winnings']=0;
}
}
else if ($ALL_REDS_OR_BLACKS)
{
for ($i=0;$i";
print_r($lk);
print_r($ck);
}
if (count($ck)==1) // Maar 1 verschillende kleur: $lk
{
// BONUS
if ($DEBUG_MODE==2)
print("ALL $lk[0] ;)");
$_SESSION['poker']['result'] = "ALL $lk[0] ;)";
$_SESSION['poker']['winnings']=$UITBETALEN['all_reds_or_blacks'];
}
else
{
// YOU LOSE
if ($DEBUG_MODE==2)
print("YOU LOSE 8");
$_SESSION['poker']['winnings']=0;
}
}
else
{
// YOU LOSE
if ($DEBUG_MODE==2)
print("YOU LOSE 10");
$_SESSION['poker']['winnings']=0;
}
// Om niet op halven of kwarten oid uit te komen: round. Moet de speler maar niet zo stom zijn voor een half fiche te spelen
$geld = round($_SESSION['poker']['winnings']*$BET);
$verlies = $geld-$BET;
mysql_query("UPDATE `[users]` SET `cash`=`cash`+'$geld' WHERE `login`='$data->login'");
if($geld > $owner->casinobank){
mysql_query("UPDATE `[users]` SET `poker`='0' WHERE `login`='$owner->owner'");
mysql_query("UPDATE `[poker]` SET `owner`='$data->login',`winst`='0',`inzet`='0',`casinobank`='0' WHERE `land`='$data->land'");
}
else
{
if($_SESSION['poker']['winnings'] == '0'){
mysql_query("UPDATE `[poker]` SET `winst`=`winst`+'$BET',`casinobank`=`casinobank`+'$BET' WHERE `land`='$data->land'");
}
else{
mysql_query("UPDATE `[poker]` SET `winst`=`winst`-'$verlies',`casinobank`=`casinobank`-'$verlies' WHERE `land`='$data->land'");
}
}
if ($DEBUG_MODE!=2)
Header("Location: ".basename($_SERVER['SCRIPT_NAME']));
exit(' Volgende');
}
/* //// //// //// //// */
/* REQUEST_URI schijnt niet overal te werken...
if (basename($_SERVER['REQUEST_URI']) != basename($_SERVER['SCRIPT_NAME']) || isset($_POST['bet']))
{
Header("Location: ".basename($_SERVER['SCRIPT_NAME']));
exit;
} */
?>
if($_GET['id'] == 'poker')
{
echo "
";
print "
Poker
\n";
if($owner->owner != '')
{
print "
Dit land heeft al een owner!
";
}
else if($data->cash < '1500000')
{
print "
Je hebt teweinig geld cash!
";
}
else if($data->poker != '0'){
print "
Je bent al ergens owner van poker!
";
}
else{
mysql_query("UPDATE `[users]` SET `cash`=`cash`-'1500000',`poker`='1' WHERE `login`='$data->login'");
mysql_query("UPDATE `[poker]` SET `owner`='$data->login',`inzet`='1000',`winst`='0',`casinobank`='500000' WHERE `land`='$data->land'");
print "
";
if(!is_numeric($geld))
{
print "Ongeldig bedrag!";
}
else if($geld < '2000')
{
print "De minimale inzet moet 2000 blijven!";
}
else
{
print "Je hebt je maxinzet naar $geld veranderd!";
mysql_query("UPDATE `[poker]` SET `inzet`='$geld' WHERE `land`='$data->land'");
}
print "
";
}
if(isset($_POST['droppoker']))
{
mysql_query("UPDATE `[users]` SET `poker`='0' WHERE `login`='$data->login'");
mysql_query("UPDATE `[poker]` SET `owner`='',`inzet`='0',`winst`='0',`casinobank`='0' WHERE `land`='$data->land'");
print "