@model BlackJackApp.GameModel
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>I'm gonna go build my own fiddle, with blackjack and hookers</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
font-family: Times New Roman;
.card.hearts, .card.diamonds {
.card.spades, .card.clubs {
background:url(http://upload.wikimedia.org/wikipedia/commons/thumb/6/63/French_suits.svg/300px-French_suits.svg.png);
background-position-x: 90px;
background-position-x: 61px;
background-position-y: -31px;
background-position-x: 63px;
background-position-x: 90px;
background-position-y: 30px;
background: url(http://cdn.shopify.com/s/files/1/0200/7616/products/red-back_1.png?v=1374546546);
input.input-validation-error {
box-shadow: 0px 0px 5px #f00;
.field-validation-error {
<div class="col-md-6 col-md-offset-3">
@using (Html.BeginForm())
if (String.IsNullOrEmpty(Model.PlayerName))
@Html.LabelFor(model => model.PlayerName)
@Html.TextBoxFor(model => model.PlayerName, new {@class = "form-control"})
@Html.ValidationMessageFor(model => model.PlayerName)
<div class="form-group col-md-4">
@Html.LabelFor(model => model.Stack)
@Html.TextBoxFor(model => model.Stack, new {@class = "form-control"})
@Html.ValidationMessageFor(model => model.Stack)
<div class="form-group col-md-offset-1 col-md-4">
@Html.LabelFor(model => model.Bet)
@Html.TextBoxFor(model => model.Bet, new {@class = "form-control col-md-2"})
@Html.ValidationMessageFor(model => model.Bet)
<div class="form-group col-md-4">
<input type="submit" class="btn btn-success" value="Play" />
@Html.HiddenFor(model => model.PlayerName)
@Html.HiddenFor(model => model.Stack)
@Html.HiddenFor(model => model.Bet)
<div id="ai" class="cards well">
<span class="weight">0</span>
<div class="card reverse"></div>
<button class="btn btn-success" value="Hit" id="hit">Hit</button>
<button class="btn btn-primary" value="Stand" id="stand">Stand</button>
<input type="submit" class="btn btn-success" value="Next Round" id="again" style="display: none;" />
<div class="message"></div>
<div style="clear: both;"></div>
<div id="player" class="cards well">
<span class="weight">0</span>
<span style="float: left">Stack: $@Model.Stack</span>
<span style="float: right">Bet: $@Model.Bet</span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#hit").click(function (e) {
$("#hit").addClass("disabled");
$("#hit").addClass("disabled");
$("#stand").click(function (e) {
$("#stand").addClass("disabled");
$("#hit").addClass("disabled");
$("#ai").find(".card").remove();
function getCard(target) {
contentType: 'application/json',
url: '@Url.Action("Hit","Home")',
data: JSON.stringify({ cards: openCards }),
success: function (openCard) {
openCards.push({RankId:openCard.RankId,SuitId:openCard.SuitId});
drawCardAndRecalculate(target, openCard);
function drawCardAndRecalculate(id, openCard) {
var card = $("<div/>").addClass("card").addClass(openCard.SuitDisplay.toLowerCase());
card = card.append(openCard.RankDisplay);
card = card.append("<span class=\"suit\"/>");
$("#hit").removeClass("disabled");
increaseWeight(id, openCard);
function increaseWeight(id, openCard) {
var w = parseInt($(id).find(".weight").text());
$(id).find(".weight").text(w);
setTimeout(function () { getCard("#ai"); }, 1);
var aiW = parseInt($("#ai").find(".weight").text());
var playerW = parseInt($("#player").find(".weight").text());
if (playerW > aiW) win();
else if (playerW == aiW) draw();
var bet = parseInt($("#Bet").val());
var stack = parseInt($("#Stack").val());
$("#Stack").val(stack - bet);
$("#player").find(".weight").addClass("lose");
$("#hit").addClass("disabled");
$("#stand").addClass("disabled");
$(".message").text("You Lose!!!");
var bet = parseInt($("#Bet").val());
var stack = parseInt($("#Stack").val());
$("#Stack").val(stack + bet);
$("#player").find(".weight").addClass("win");
$("#hit").addClass("disabled");
$("#stand").addClass("disabled");
$(".message").text("You Won!!!");
$("#hit").addClass("disabled");
$("#stand").addClass("disabled");
$(".message").text("Draw!!!");