BlackJack
A simple BlackJack game.
by kalmarsh80
HTML
<div id="dealerHand"></div>
<div id="yourHand"></div>
<div id="yourScore">Your Score: <span class="digits">0</span> Record: <span id="wins">0</span> / <span id="losses">0</span></div>
<button id="deal">Deal</button>
<button id="hitMe">Hit</button>
<button id="stand">Stand</button>
CSS
body {
font-family:sans-serif;
padding:1em;
}
#yourHand {
overflow:hidden;
position:relative;
border:1px solid #056B42;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
background: #287B59;
color:#69D1A7;
padding:.5em;
font-size:1.1em;
height:6em;
width:25em;
}
.card {
background:#fff;
border: 1px solid gray;
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
-moz-box-shadow:0 2px 2px 1px #999;
-webkit-box-shadow:0px 2px 2px 1px #999;
box-shadow:0 2px 2px 1px #999;
font-size: 20pt;
float: left;
width: 3.75em;
height: 5em;
padding:.1em;
margin-right:-1em;
font-family:serif;
}
.card:first-child {margin-left:0;}
.Spades, .Clubs {color:black}
.Diamonds, .Hearts {color:red}
#deal {
-moz-box-shadow:inset 0px -1px 4px 3px #9f71d1;
-webkit-box-shadow:inset 0px -1px 4px 3px #9f71d1;
box-shadow:inset 0px -1px 4px 3px #9f71d1;
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9f71d1), color-stop(1, #3a096a) );
background:-moz-linear-gradient( center top, #9f71d1 5%, #3a096a 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9f71d1', endColorstr='#3a096a');
background-color:#9f71d1;
-moz-border-radius:4px;
-webkit-border-radius:4px;
border-radius:4px;
border:1px solid #3a096a;
display:inline-block;
color:#ffffff;
font-family:Arial;
font-size:15px;
font-weight:bold;
padding:7px 13px;
text-decoration:none;
text-shadow:1px 1px 0px #3a096a;
}
#deal:hover {
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #3a096a), color-stop(1, #9f71d1) );
background:-moz-linear-gradient( center top, #3a096a 5%, #9f71d1 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3a096a', endColorstr='#9f71d1');
background-color:#3a096a;
}
#hitMe {
-moz-box-shadow:inset 0px...
JavaScript
/** @constructor */
var Card = function (suit, number){
/** @returns {Number} The number of the card in the deck. (1-52) */
this.getNumber = function (){
return number;
};
/** @returns {String} The name of the suit. "Hearts","Clubs","Spades", or "Diamonds." */
this.getSuit = function (){
var suitName = '';
switch (suit){
case 1:
suitName = "Hearts";
break;
case 2:
suitName = "Clubs";
break;
case 3:
suitName = "Spades";
break;
case 4:
suitName = "Diamonds";
break;
}
return suitName;
};
/** @returns {String} The HTML-encoded symbol of the suit. */
this.getSymbol = function (){
var suitName = '';
switch (suit){
case 1:
suitName = "♥";
break;
case 2:
suitName = "♣";
break;
case 3:
suitName = "♠";
break;
case 4:
suitName = "♦";
break;
}
return suitName;
};
/** @returns {Number} The value of the card for scoring. */
this.getValue = function (){
var value = number;
if (number >= 10){
value = 10;
}
if(number === 1) {
value = 11;
}
return value;
};
/** @returns {String} The full name of the card. "Ace of Spades" */
this.getName = function (){
var cardName = '';
switch (number){
case 1:
cardName = "A";
break;
case 13:
cardName = "K";
break;
case 12:
cardName = "Q";
break;
case 11:
cardName = "J";
...