summaryrefslogtreecommitdiffstats
path: root/models/bjack.php
diff options
context:
space:
mode:
Diffstat (limited to 'models/bjack.php')
-rw-r--r--models/bjack.php258
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;
+ }
+
+}