Anonymous user
Playing cards: Difference between revisions
m
→[[Playing_Cards#ALGOL 68]]: misc tidy
m (→[[Playing_Cards#ALGOL 68]]: misc tidy) |
|||
Line 149:
out
);
PROC shuffle = (REF []CARD deck)VOID:
FOR card TO UPB deck DO
CARD this card = deck[card];
Line 159:
# class members #
MODE CLASSCARD = STRUCT(PROC(REF CARD, STRING, STRING)VOID init, PROC(REF CARD)STRING repr,
FLEX[1:0]STRING suits, pips);
CLASSCARD
# PROC init = # (REF CARD self, STRING pip, suit)VOID:(
pip OF self:=pip;
Line 169:
# PROC repr = # (REF CARD self)STRING:
pip OF self+" "+suit OF self,
# suits = #
# pips = #
);
MODE CARD = STRUCT(STRING pip, suit); # instance members #
# class members #
MODE CLASSDECK = STRUCT( PROC(REF DECK)VOID init, shuffle, PROC(REF DECK)STRING repr, PROC(REF DECK)CARD deal);
CLASSDECK
# PROC deck init = # (REF DECK self)VOID:(
HEAP[ UPB suits OF
FOR suit TO UPB suits OF
FOR pip TO UPB pips OF
new[(suit-1)*UPB pips OF
((pips OF
OD
OD;
deck OF self := new
),
# PROC shuffle = # (REF DECK self)VOID:
shuffle(deck OF self),
# PROC repr = # (REF DECK self)STRING:
"[" + sprintf($"("g","g"),"$, deck OF self) +"]",
# PROC deal = # (REF DECK self)CARD: (
(shuffle OF
(deck OF self)[UPB deck OF self]
)
Line 206:
DECK deck;
(init OF
(shuffle OF
print (((repr OF
</pre>
Example output:<br>
|