-   
- program Truco; 
- uses CRT; 
- (***************************************************************************) 
- type 
-  TNaipe = record 
-     Palo :  (Espada,Basto,Oro,Copa); 
-     Nro  :  Byte; 
-     Dib  :  char; 
-  end; 
-  TBaraja =  array [1..40] of TNaipe; 
- (***************************************************************************) 
- Var 
-  Espad  :  TNaipe; 
-  Baraja :  TBaraja; 
-  Ch     :  char; 
-  I      :  integer; 
- (***************************************************************************) 
- procedure RandomCarta(var Naipe : Tnaipe); 
-  var 
-   I : Integer; 
-   J : Integer; 
-  begin 
-   I := Random(4)+1; 
-   J := Random(12)+1; 
-   If (J=8) or (J=9) Then J := Random(12)+1; 
-   Naipe.Nro := J; 
-   Case I of 
-    1: begin 
-        Naipe.Palo := Espada; 
-        Naipe.Dib := #6; 
-       end; 
-    2: begin 
-        Naipe.Palo := Basto; 
-        Naipe.Dib := #3; 
-       end; 
-    3: begin 
-        Naipe.Palo :=Oro; 
-        Naipe.Dib := #4; 
-       end; 
-    4: begin 
-        Naipe.Palo :=Copa; 
-        Naipe.Dib := #5; 
-       end; 
-   end; 
-  end; 
-   
- function SinRepetir(N:Integer; Naipe:TNaipe; Maso:TBaraja ) : boolean; 
-  var I : Integer; 
-  begin 
-   for I := 1 to N  do 
-    begin 
-     if(Maso[I].Nro=Naipe.Nro) 
-      and (Ord(Maso[I].Palo)=Ord(Naipe.Palo)) 
-       then SinRepetir := False 
-     else SinRepetir := True 
-    end; 
-  end; 
-   
- procedure RandomBaraja(var  Maso : TBaraja); 
-  var 
-   I : integer; 
-   Carta : TNaipe; 
-  begin 
-   for I := 1 to 40 do 
-    begin 
-     RandomCarta(Carta); 
-     If SinRepetir(I,Carta,Maso) 
-      then Maso[I] := Carta 
-     else RandomCarta(Carta); 
-    end; 
-   end; 
- (***************************************************************************) 
- Begin 
-  TextMode(3); 
-  ClrScr; 
-  Randomize; 
-  RandomBaraja(Baraja); 
-  TextColor(4); 
-  for I := 1 to 40 do 
-   begin 
-    WriteLn('    ',Baraja[I].Nro:5,'    ',Baraja[I].Dib); 
-    if I = 20 Then 
-     begin 
-     window(40,1,70,25); 
-     WriteLn('    ',Baraja[I].Nro:5,'    ',Baraja[I].Dib) 
-     end; 
-  end; 
- ReadKey; 
- End. 
-   
-   
-