diff options
Diffstat (limited to 'models/bjack.php')
-rw-r--r-- | models/bjack.php | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/models/bjack.php b/models/bjack.php new file mode 100644 index 0000000..6262d44 --- /dev/null +++ b/models/bjack.php @@ -0,0 +1,258 @@ +<?php + +class BJack { + + function destroySession() { + + /* + * Destroy the running session (logout) + */ + + session_unset(); + session_destroy(); + session_write_close(); + setcookie(session_name(), "", 0, '/'); + session_regenerate_id(true); + } + + function generateShuffledDeck() { + + /* + * shuffle() uses rand() and should satifsy our needs + */ + + $deck = range(1, 312); + shuffle($deck); + return $deck; + } + + function calculateChance($deck, $num, $score) { + + /* + * First let's see how many points are left to 21 + */ + + $pointsLeft = 21 - $score; + + /* + * Now we have to find out how many cards in our rest deck can break our neck + */ + + $cardsToLose = 0; + + for ($i = $num; $i <= 312; $i++) { + $card = $this->getCardInfo($deck[$i]); + $cardValue = $card[0]; + + if ($cardValue > $pointsLeft) { + $cardsToLose++; + } + } + + /* + * Now we now how many cards are left and how many of them can make us feel like a looser + */ + + $cardsLeft = 312 - $num; + $chanceToLose = ($cardsToLose * 100) / $cardsLeft; + + return $chanceToLose; + + } + + function sixDecksWorkaround($card) { + + if ($card >= 53 && $card <= 104) { + $card = $card - 52; + } else if ($card >= 105 && $card <= 156) { + $card = $card - 104; + } else if ($card >= 157 && $card <= 208) { + $card = $card - 156; + } else if ($card >= 209 && $card <= 260) { + $card = $card - 208; + } else if ($card >= 261 && $card <= 312) { + $card = $card - 260; + } + + return $card; + + } + + function getCardInfo($card) { + + /* + * Information about our card + * + * Array [0] = Card points + * Array [1] = Card name + */ + + $card = $this->sixDecksWorkaround($card); + + $data = array(); + + if ($card == "1") { + $data[] = 1; + $data[] = "Ace of Clubs"; + } else if ($card == "2") { + $data[] = 1; + $data[] = "Ace of Spades"; + } else if ($card == "3") { + $data[] = 1; + $data[] = "Ace of Hearts"; + } else if ($card == "4") { + $data[] = 1; + $data[] = "Ace of Diamonds"; + } else if ($card == "5") { + $data[] = 10; + $data[] = "King of Clubs"; + } else if ($card == "6") { + $data[] = 10; + $data[] = "King of Spades"; + } else if ($card == "7") { + $data[] = 10; + $data[] = "King of Hearts"; + } else if ($card == "8") { + $data[] = 10; + $data[] = "King of Diamonds"; + } else if ($card == "9") { + $data[] = 10; + $data[] = "Queen of Clubs"; + } else if ($card == "10") { + $data[] = 10; + $data[] = "Queen of Spades"; + } else if ($card == "11") { + $data[] = 10; + $data[] = "Queen of Hearts"; + } else if ($card == "12") { + $data[] = 10; + $data[] = "Queen of Diamonds"; + } else if ($card == "13") { + $data[] = 10; + $data[] = "Jack of Clubs"; + } else if ($card == "14") { + $data[] = 10; + $data[] = "Jack of Spades"; + } else if ($card == "15") { + $data[] = 10; + $data[] = "Jack of Hearts"; + } else if ($card == "16") { + $data[] = 10; + $data[] = "Jack of Diamonds"; + } else if ($card == "17") { + $data[] = 10; + $data[] = "Ten of Clubs"; + } else if ($card == "18") { + $data[] = 10; + $data[] = "Ten of Spades"; + } else if ($card == "19") { + $data[] = 10; + $data[] = "Ten of Hearts"; + } else if ($card == "20") { + $data[] = 10; + $data[] = "Ten of Diamonds"; + } else if ($card == "21") { + $data[] = 9; + $data[] = "Nine of Clubs"; + } else if ($card == "22") { + $data[] = 9; + $data[] = "Nine of Spades"; + } else if ($card == "23") { + $data[] = 9; + $data[] = "Nine of Hearts"; + } else if ($card == "24") { + $data[] = 9; + $data[] = "Nine of Diamonds"; + } else if ($card == "25") { + $data[] = 8; + $data[] = "Eight of Clubs"; + } else if ($card == "26") { + $data[] = 8; + $data[] = "Eight of Spades"; + } else if ($card == "27") { + $data[] = 8; + $data[] = "Eight of Hearts"; + } else if ($card == "28") { + $data[] = 8; + $data[] = "Eight of Diamonds"; + } else if ($card == "29") { + $data[] = 7; + $data[] = "Seven of Clubs"; + } else if ($card == "30") { + $data[] = 7; + $data[] = "Seven of Spades"; + } else if ($card == "31") { + $data[] = 7; + $data[] = "Seven of Hearts"; + } else if ($card == "32") { + $data[] = 7; + $data[] = "Seven of Diamonds"; + } else if ($card == "33") { + $data[] = 6; + $data[] = "Six of Clubs"; + } else if ($card == "34") { + $data[] = 6; + $data[] = "Six of Spades"; + } else if ($card == "35") { + $data[] = 6; + $data[] = "Six of Hearts"; + } else if ($card == "36") { + $data[] = 6; + $data[] = "Six of Diamonds"; + } else if ($card == "37") { + $data[] = 5; + $data[] = "Five of Clubs"; + } else if ($card == "38") { + $data[] = 5; + $data[] = "Five of Spades"; + } else if ($card == "39") { + $data[] = 5; + $data[] = "Five of Hearts"; + } else if ($card == "40") { + $data[] = 5; + $data[] = "Five of Diamonds"; + } else if ($card == "41") { + $data[] = 4; + $data[] = "Four of Clubs"; + } else if ($card == "42") { + $data[] = 4; + $data[] = "Four of Spades"; + } else if ($card == "43") { + $data[] = 4; + $data[] = "Four of Hearts"; + } else if ($card == "44") { + $data[] = 4; + $data[] = "Four of Diamonds"; + } else if ($card == "45") { + $data[] = 3; + $data[] = "Three of Clubs"; + } else if ($card == "46") { + $data[] = 4; + $data[] = "Three of Spades"; + } else if ($card == "47") { + $data[] = 4; + $data[] = "Three of Hearts"; + } else if ($card == "48") { + $data[] = 4; + $data[] = "Three of Diamonds"; + } else if ($card == "49") { + $data[] = 2; + $data[] = "Two of Clubs"; + } else if ($card == "50") { + $data[] = 2; + $data[] = "Two of Spades"; + } else if ($card == "51") { + $data[] = 2; + $data[] = "Two of Hearts"; + } else if ($card == "52") { + $data[] = 2; + $data[] = "Two of Diamonds"; + } else { + $data[] = 0; + $data[] = "Unknown card"; + } + + return $data; + } + +} |