DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦88fa57444⟧ TextFile

    Length: 3328 (0xd00)
    Types: TextFile
    Names: »BRIDGE2.PAS«

Derivation

└─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80)
    └─ ⟦this⟧ »BRIDGE2.PAS« 
└─⟦3702e543b⟧ Bits:30003064 Demoprogrammer A-J til Pascal bog
    └─ ⟦this⟧ »BRIDGE2.PAS« 
└─⟦f983c2ef3⟧ Bits:30004681 Pascal opgaver (Butler)
    └─ ⟦this⟧ »BRIDGE2.PAS« 

TextFile

        PROGRAM bridge2;
        
          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, j : INTEGER;
             farve : kuloerer;
           
           BEGIN (* udskrivhaand *)
             FOR farve := kloer TO spar DO
               BEGIN
                 WRITELN;
                 CASE farve OF
                   kloer : WRITE('KLØR    : ');
                   ruder : WRITE('RUDER   : ');
                   hjerter : WRITE('HJERTER : ');
                   spar : WRITE('SPAR    : ');
                 END; (* CASE *)
                 FOR i := 1 TO 13 DO
                   FOR j := 1 TO 13 DO
                     WITH spiller(.j.) DO
                       IF (kuloer = farve) AND (nr = i)
                         THEN WRITE(i:3);
               END; (* FOR farve *)
             WRITELN;
             WRITELN;
           END; (* udskrivhaand *)
         
         BEGIN (* bridge1*)
           WRITE(CHR(12));
           opretspil;
           bland;
           uddel;
           WRITE('NORD: '); udskrivhaand(nord);
           WRITE('ØST : '); udskrivhaand(oest);
           WRITE('SYD : '); udskrivhaand(syd);
           WRITE('VEST: '); udskrivhaand(vest);
         END. (* bridge1 *)
«eof»