%Chris Rigobon
procedure winroll (var localpurse : real, localbet : real)
put "You Win"
localpurse := localpurse + (localbet * 2)
put "You have $", localpurse
end winroll
procedure loseroll (var localpurse : real)
put "You Loose"
localpurse := localpurse
put "You have $", localpurse
end loseroll
procedure rolldice (var r : int)
randomize
var r1, r2 : int
randint (r1, 1, 6)
randint (r2, 1, 6)
r := r1 + r2
end rolldice
%--------------------Main-------------------
var value, point : int
var bet, purse : real
var answer : string
purse := 1000
loop
cls
put "Welcome to Craps. You have $",purse,". Would You Like to Roll? (Y)es or (N)o
? " ..
get answer
if answer not= "Y" then
put "Thanks for playing Craps."
put "You left the game with $", purse
exit
end if
put "How many cash do you want to put on the line? " ..
get bet
if bet > purse then
put "You do not have $", bet
exit
end if
purse := purse - bet
value := 0
rolldice (value)
point := value
delay (1000)
if value = 7 or value = 11 then
put "You Rolled a ", value
winroll (purse, bet)
delay (1500)
elsif value = 2 or value = 3 or value = 12 then
put "You Rolled a ", value
loseroll (purse)
delay (1500)
else
delay (1500)
put "You rolled a ", value,
". Roll it again to win. Roll a 7 and you loose."
delay (3000)
loop
value := 0
rolldice (value)
if value = 7 then
put "You have just rolled a 7 and lossed."
loseroll (purse)
exit
elsif value = point then
put "You have Rolled your Point and Won."
winroll (purse, bet)
exit
else
put "You rolled a ", value, ". Rolling Again."
delay (3500)
end if
end loop
end if
exit when purse <= 0
delay (5000)
end loop
if purse = 0 then
put "You have no money."
elsif purse < 0 then
put "You owe the casino $", purse
end if
%Blackjack
procedure randcard (var localcard : int)
var r : int
randomize
randint (r, 1, 10)
localcard := r
end randcard
procedure checkp (var localcard : int, summp : int)
var ans2 : int
if localcard = 1 then
put "Your total is: ", summp
put "Shall I make your ace 1 or 11?"
get ans2
if ans2 = 1 then
localcard := 1
elsif ans2 = 11 then
localcard := 11
end if
end if
end checkp
procedure checkd (var localcard : int, summd : int)
if localcard = 1 then
if (summd + 11) > 21 then
localcard := 1
elsif (summd + 11) <= 21 then
localcard := 11
end if
end if
end checkd
procedure sump1 (var summp : int, localcard : int)
summp := summp + localcard
end sump1
procedure sumdlr (var summd : int, localcard : int)
summd := summd + localcard
end sumdlr
procedure lose (var purseee : int)
purseee := purseee
put "You have $", purseee
delay (5000)
end lose
procedure win (var purseee : int, bettt : int)
purseee := purseee + (bettt * 2)
put "You have $", purseee
delay (5000)
end win
procedure winlose (var pursee : int, summp, summd, nce, bett : int)
if summp > summd and summp <= 21 then
put "Dealer Wins!"
lose (pursee)
elsif summp > 21 then
put "Dealer Wins!"
lose (pursee)
elsif
summd > 21 and summp > 21 then
put "Dealer Wins!"
lose (pursee)
elsif summd > 21 and summp <= 21 then
put "You Win!"
win (pursee, bett)
elsif nce >= 5 and summp <= 21 then
put "500 Rule, You Win!"
win (pursee, bett)
end if
end winlose
%------------------------Main------------------------
var card, sump, sumd, dlrfstcd, nc : int
var ans, ans3 : string
var bet, purse : int
sump := 0
sumd := 0
purse := 1000
nc := 2
loop
put "Would you like to play Blackjack? (Y)es or (N)o? " ..
get ans3
if ans3 not= "Y" then
cls
put "Thanks for playing."
put "You cashed out with $", purse
exit
end if
cls
put "Your purse is: $", purse
put "Enter your bet (No Change, Just Integers) : " ..
get bet
if bet > purse then
cls
put "Get out of here, you do not have $", bet
ans := "NC"
exit
end if
purse := purse - bet
randcard (card)
checkp (card, sump)
sump1 (sump, card)
put "Your first card is: " ..
put card
randcard (card)
checkp (card, sump)
sump1 (sump, card)
put "Your second card is: " ..
put card
put "Dealers cards: " ..
randcard (card)
checkd (card, sumd)
sumdlr (sumd, card)
put card
put "Only first card will be shown."
loop
put "Your total is: ", sump
put "Dealers visible total is: ", sumd
put "(H)it or (S)tay? " ..
get ans
cls
if ans not= "H" then
exit
elsif ans = "H" then
cls
randcard (card)
nc := nc + 1
checkp (card, sump)
sump1 (sump, card)
put "Your card is: ", card
if sump > 21 then
put "Your total is: ", sump
put "You are over twenty one."
put "Dealer Wins."
ans := "NC"
exit
end if
end if
end loop
sumdlr (sumd, dlrfstcd)
put "Dealers total is: ", sumd
loop
if ans = "NC" then
exit
elsif sumd <= 16 then
randcard (card)
checkd (card, sumd)
sumdlr (sumd, card)
put "Dealers ard is ", card
put "Dealers total is ", sumd
delay (2000)
elsif sumd >= 17 then
sumd := sumd
exit
end if
end loop
if ans not= "NC" then
cls
put "Your total is: ", sump
put "Dealers total is: ", sumd
winlose (sump, sumd, nc, purse, bet)
end if
exit when purse <= 0
end loop