Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
53
Task/Playing-cards/Icon/playing-cards.icon
Normal file
53
Task/Playing-cards/Icon/playing-cards.icon
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
procedure main(arglist)
|
||||
|
||||
cards := 2 # cards per hand
|
||||
players := 5 # players to deal to
|
||||
|
||||
write("New deck : ", showcards(D := newcarddeck())) # create and show a new deck
|
||||
write("Shuffled : ", showcards(D := shufflecards(D))) # shuffle it
|
||||
|
||||
H := list(players)
|
||||
every H[1 to players] := [] # hands for each player
|
||||
|
||||
every ( c := 1 to cards ) & ( p := 1 to players ) do
|
||||
put(H[p], dealcard(D)) # deal #players hands of #cards
|
||||
|
||||
every write("Player #",p := 1 to players,"'s hand : ",showcards(H[p]))
|
||||
write("Remaining: ",showcards(D)) # show the rest of the deck
|
||||
end
|
||||
|
||||
record card(suit,pip) #: datatype for a card suit x pip
|
||||
|
||||
procedure newcarddeck() #: return a new standard deck
|
||||
local D
|
||||
|
||||
every put(D := [], card(suits(),pips()))
|
||||
return D
|
||||
end
|
||||
|
||||
procedure suits() #: generate suits
|
||||
suspend !["H","S","D","C"]
|
||||
end
|
||||
|
||||
procedure pips() #: generate pips
|
||||
suspend !["2","3","4","5","6","7","8","9","10","J","Q","K","A"]
|
||||
end
|
||||
|
||||
procedure shufflecards(D) #: shuffle a list of cards
|
||||
every !D :=: ?D # see INL#9
|
||||
return D
|
||||
end
|
||||
|
||||
procedure dealcard(D) #: deal a card (from the top)
|
||||
return get(D)
|
||||
end
|
||||
|
||||
procedure showcards(D) #: return a string of all cards in the given list (deck/hand/etc.)
|
||||
local s
|
||||
every (s := "") ||:= card2string(!D) || " "
|
||||
return s
|
||||
end
|
||||
|
||||
procedure card2string(x) #: return a string version of a card
|
||||
return x.pip || x.suit
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue