bjack/models/bjack.php
2012-03-13 11:36:26 +01:00

258 lines
5.6 KiB
PHP

<?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;
}
}