PROGRAM KAFT1 (INPUT,OUTPUT); TYPE FELD=ARRAY[1..32]OF INTEGER; VAR KARTE:FELD; SPIELERPUNKTE:ARRAY[1..5]OF INTEGER; KARTENNUMMER, SPIELERANZAHL, SPIELER:INTEGER; SPIELWUNSCH:CHAR; PROCEDURE VERTAUSCHE (VAR X,Y:INTEGER); VAR HILFE:INTEGER; BEGIN HILFE:=X; X:=Y; Y:=HILFE END; PROCEDURE KARTENWERTE; VAR K:INTEGER; BEGIN K:=0; FOR SPIELER:=2 TO 4 DO FOR KARTENNUMMER:=1 TO 4 DO BEGIN K:=K+1; KARTE[K]:=SPIELER END; FOR SPIELER:=7 TO 11 DO FOR KARTENNUMMER:=1 TO 4 DO BEGIN K:=K+1; KARTE[K]:=SPIELER END END; PROCEDURE AUSTEILEN ; BEGIN KARTENNUMMER:=KARTENNUMMER+1; SPIELERPUNKTE[SPIELER]:=SPIELERPUNKTE[SPIELER]+KARTE[KARTENNUMMER]; WRITELN("IHR PUNKTESTAND BETRAEGT JETZT:",SPIELERPUNKTE[SPIELER],"PUNKTE"); IF (SPIELERPUNKTE[SPIELER]>21) THEN BEGIN SPIELWUNSCH:="N"; SPIELERPUNKTE[SPIELER]:=0 END ELSE BEGIN WRITELN("WILLST'E NOCH 'NE KARTE? J ODER N?"); READLN; READ(SPIELWUNSCH) END END; PROCEDURE CHAMPION; VAR LISTE:ARRAY[1..5]OF INTEGER; BEGIN FOR SPIELER:=1 TO SPIELERANZAHL DO LISTE[SPIELER]:=SPIELER; FOR KARTENNUMMER:=SPIELERANZAHL-1 DOWNTO 1 DO FOR SPIELER:=1 TO KARTENNUMMER DO BEGIN IF SPIELERPUNKTE[SPIELER]>SPIELERPUNKTE[SPIELER+1] THEN BEGIN VERTAUSCHE(LISTE[SPIELER],LISTE[SPIELER+1]); VERTAUSCHE(SPIELERPUNKTE[SPIELER],SPIELERPUNKTE[SPIELER+1]) END END; FOR SPIELER:=SPIELERANZAHL DOWNTO 1 DO BEGIN KARTENNUMMER:=KARTENNUMMER+1; IF (SPIELERPUNKTE[SPIELER]<>0) THEN WRITELN(KARTENNUMMER,"CHAMPION IST DER",LISTE[SPIELER],"SPIELER MIT",SPIELERPUNKTEN[SPIELER],"PUNKTEN!") ELSE WRITELN("DER",LISTE[SPIELER],"SPIELER LIEGT MIT UEBER 21 PUNKTEN AUSSERHALB DER WERTUNG."); WRITELN("KAFT EMPFIEHLT, DIE TAKTIK IM NAECHSTEN SPIEL GRAVIEREND ZU AENDERN, DA DAS SPIEL SONST KEINEN SPASS MEHR MACHT!"); WRITELN("HAST'E NOCH LUST ZU SPIELEN? J ODER N?"); READLN; READ(SPIELWUNSCH) END END; BEGIN KARTENWERTE; SPIELWUNSCH:="J"; WHILE (SPIELWUNSCH="J") DO BEGIN FOR SPIELER:=1 TO 100 DO VERTAUSCHE(KARTE[TRUNC(32*RANDOM+1)],KARTE[TRUNC(32*RANDOM+1)]); WRITELN("WIEVIELE SPIELER WOLLEN MITSPIELEN?"); READLN; READ(SPIELERANZAHL); FOR SPIELER:=1 TO SPIELERANZAHL DO BEGIN SPIELWUNSCH:="J"; WHILE (SPIELWUNSCH="J") DO AUSTEILEN END; CHAMPION END END.