258 lines
5.6 KiB
PHP
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;
|
|
}
|
|
|
|
}
|