[ Foro de Pascal ]

Truco 21 cartas

20-Apr-2024 22:09
Invitado (nicolas)
1 Respuestas

alguiel que sepa programar en pascal y me ayude a resolver este codigo


program Truco21cartas;

const

MAX_TARJETAS_GRUPO = 7;

MAX_GRUPOS = 3;

MAX_TARJETAS = MAX_TARJETAS_GRUPO * MAX_GRUPOS;

MIN_TARJETA_VALOR = 'A';

MAX_TARJETA_VALOR = Chr(MAX_TARJETAS + Ord('A') - 1);



type

tarjetas = MIN_TARJETA_VALOR..MAX_TARJETA_VALOR;

grupo = array[1..MAX_TARJETAS_GRUPO] of tarjetas;

mazo = array[1..MAX_TARJETAS] of tarjetas;



var

grupo1, grupo2, grupo3: grupo;

deck: mazo;

i, j,x: Integer;

carta: tarjetas;

opcion: integer;





begin



Randomize;



  writeln('Hola, soy mago intentare adivinarte la letra en la que estas pensando.');

  writeln;

  writeln('vamos 3 secuencias. Empecemos...');

  writeln;

  writeln('Secuencia 1 :');

// Llenar el mazo con todas las tarjetas posibles

for i := 1 to MAX_TARJETAS do

   deck[i] := Chr(Ord('A') + i - 1);



// Barajar el mazo

for i := 1 to MAX_TARJETAS do begin

   j := Random(MAX_TARJETAS) + 1;

   carta := deck[i];

   deck[i] := deck[j];

   deck[j] := carta;

end;



// Distribuir las tarjetas en grupos sin repeticiones

for i := 1 to MAX_TARJETAS_GRUPO do

begin

   grupo1[i] := deck[i];

   grupo2[i] := deck[i + MAX_TARJETAS_GRUPO];

   grupo3[i] := deck[i + 2 * MAX_TARJETAS_GRUPO];

end;



writeln;



// Mostrar los grupos



for i := 1 to MAX_TARJETAS_GRUPO do

   writeln('   ',grupo1[i], '   ',grupo2[i], '   ',grupo3[i]);





writeln;











for x:=1 to MAX_GRUPOS do begin

write('En que columna se encuentra tu letra? (1-2-3):');

readln(opcion);



   case opcion of

    1:

      begin       //GRUPO 1

        for i:=1 to 7 do

   grupo1[i]:=deck[i];

   for i := 1 to 7 do

   deck[i] := deck[i + 14];

     for i := 1 to 7 do

   deck[i + 7] := grupo1[i];





    for i :=1 to MAX_TARJETAS_GRUPO do begin

    write('   ',grupo1[i], '   ',grupo2[i], '   ',grupo3[i]);

      writeln;

    end;

     end;







    2:

    begin // GRUPO 2



      for i:=1 to 7 do

   grupo2[i]:=deck[i];

   for i := 1 to 7 do

   deck[i] := deck[1 + 14];

     for i := 1 to 7 do

   deck[i + 7] := grupo2[i];





      FOR i:=1 TO MAX_TARJETAS_GRUPO do BEGIN

        deck[i]:=deck[i];

    write('   ',grupo1[i],'   ',grupo2[i],'   ',grupo3[i]);

      writeln;

    end;



    end;



    3:

    begin       //GRUPO 3

        for i:=1 to 7 do

   grupo1[i]:=deck[i];

   for i := 1 to 7 do

   deck[i] := deck[i + 14];

     for i := 1 to 7 do

   deck[i + 7] := grupo1[i];





    for i :=1 to MAX_TARJETAS_GRUPO do begin

    write('   ',grupo1[i], '   ',grupo2[i], '   ',grupo3[i]);

      writeln;

    end;

     end;





   else begin

     writeln('ERROR: Debes escoger entre 1-2-3');

      writeln('¿En que columna se encuentra tu letra? (1-2-3):');

      writeln;

      readln(opcion);

end;

     end;

end;

   WRITELN('Tu Letra es la:', deck[11]);

   writeln;

   readln;


 


29-Apr-2024 11:08
Nacho Cabanes (+84)

¿Qué quieres decir con "ayudar a resolver"? Intenta ser más concreto, ¿qué duda tienes?






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)