|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00)
Types: TextFile
Names: »BRIDGE1.PAS«
└─⟦08ea08c61⟧ Bits:30003924 PolyPascal programmer
└─⟦this⟧ »BRIDGE1.PAS«
PROGRAM bridge1;
TYPE
kuloerer = (kloer, ruder, hjerter, spar);
blad = RECORD
kuloer : kuloerer;
nr : 1 .. 13;
END;
haand = ARRAY(.1 .. 13.) OF blad;
kortspil = ARRAY(.1 .. 52.) OF blad;
VAR
kort : kortspil;
nord, oest, syd, vest : haand;
PROCEDURE opretspil;
VAR
farve : kuloerer;
i : INTEGER;
BEGIN (* opretspil *)
FOR farve := kloer TO spar DO
FOR i := 0 TO 12 DO
WITH kort(.52 - (13 * ORD(farve) + i).) DO
BEGIN
kuloer := farve;
nr := i + 1;
END;
END; (* opretspil *)
PROCEDURE bland;
VAR
i, byt : INTEGER;
temp : blad;
BEGIN (* bland *)
RANDOMIZE;
FOR i := 1 TO 52 DO
BEGIN
byt :=RANDOM(52) + 1;
temp := kort(.i.);
kort(.i.) := kort(.byt.);
kort(.byt.) := temp;
END;
END; (* bland *)
PROCEDURE uddel;
VAR
i : INTEGER;
BEGIN (* uddel *)
FOR i := 0 TO 51 DO
BEGIN
CASE i MOD 4 OF
0 : nord(.i DIV 4 + 1.) := kort(.52 - i.);
1 : oest(.i DIV 4 + 1.) := kort(.52 - i.);
2 : syd(.i DIV 4 + 1.) := kort(.52 - i.);
3 : vest(.i DIV 4 + 1.) := kort(.52 - i.);
END; (* CASE *)
END; (* FOR *)
END; (* uddel *)
PROCEDURE udskrivhaand(spiller : haand);
VAR
i : INTEGER;
BEGIN (* udskrivhaand *)
FOR i := 1 TO 13 DO
WITH spiller(.i.) DO
BEGIN
CASE kuloer OF
kloer : WRITE('K');
ruder : WRITE('R');
hjerter : WRITE('H');
spar : WRITE('S');
END; (* CASE *)
WRITE(nr, ' ');
END; (* WITH, FOR *)
WRITELN;
WRITELN;
END; (* udskrivhaand *)
BEGIN (* bridge1*)
WRITE(CLRHOM);
opretspil;
bland;
uddel;
WRITELN('NORD: '); udskrivhaand(nord);
WRITELN('ØST : '); udskrivhaand(oest);
WRITELN('SYD : '); udskrivhaand(syd);
WRITELN('VEST: '); udskrivhaand(vest);
END. (* bridge1 *)
«eof»