DataMuseum.dk

Presents historical artifacts from the history of:

Jet Computer Jet80

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

See our Wiki for more about Jet Computer Jet80

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦e54932410⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »BRIDGE1.PAS«

Derivation

└─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80)
    └─ ⟦this⟧ »BRIDGE1.PAS« 

TextFile

        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(CHR(12));
           opretspil;
           bland;
           uddel;
           WRITELN('NORD: '); udskrivhaand(nord);
           WRITELN('ØST : '); udskrivhaand(oest);
           WRITELN('SYD : '); udskrivhaand(syd);
           WRITELN('VEST: '); udskrivhaand(vest);
         END. (* bridge1 *)
 «eof»