Ver Mensaje Individual
  #1  
Antiguo 18-06-2010
ZERO0 ZERO0 is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Reputación: 0
ZERO0 Va por buen camino
crear programa en el cual haya un algoritmo para poder robar cartas

Buenas a todos. Soy nuevo en este foro. Os escribo porque estoy intentando hacer un progrma donde en el cual se emplee ficheros que ponga cartas intercmabiables, y en uno de esos modulos, se requiere que, dado un numero entero, te permita robar x cartas. Pero tengo un problema, y es que como en mi curso de informatica no vimos nada o casi nada de estructura aleatorias, pues como que no se como poder programarlos. Se que se necesita los random y randomize oportunos, pero no sé cómo. Espero que puedan ayudarme, ya que es un programa interesante para el estudio sobre el juego en el cual lo desarollo.

PD: aqui es necsario que haya archivos para que fucnione optimamente.

PD: os pongo los programas tal y como los tengo hasta ahora:

programa a corregir (en el que hay que poner el modulo aleatorio vaya)
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;


type
Tcarta = record
num: integer;
nom: string[40];
color:string[25];
tipo:string[40];
HP:string[3];
text_carta1:string[255];
text_carta2:string[255];
text_carta3:string[255];
text_carta4:string[255];
debilitat:string[33];
resistencia:string[33];
costretirada:string[10];
end;
var
opcio: integer;

procedure Crearmall();
var
mall1:file of Tcarta;
aux1:Tcarta;
i:integer;
begin

Assignfile(mall1,'baralla_a_estudi.car');
Rewrite(mall1);
for i:=1 to 2 do
begin
Writeln('dona tots els detalls de la carta a posar en el mall');
Readln(aux1.num);
Readln(aux1.nom);
Readln(aux1.tipo);
Readln(aux1.color);
Readln(aux1.hp);
Readln(aux1.text_carta1);
Readln(aux1.text_carta2);
Readln(aux1.text_carta3);
Readln(aux1.text_carta4);
Readln(aux1.debilitat);
Readln(aux1.resistencia);
Readln(aux1.costretirada);
Write(mall1,aux1);
end;

Closefile(mall1);
end;

procedure Llegirmall();
var
mall2:file of Tcarta;
aux2:Tcarta;
begin
Assignfile(mall2,'baralla_a_estudi.car');
Reset(mall2);
while not Eof(mall2) do
begin
Read(mall2,aux2);
Writeln('carta numero:',aux2.num);
Writeln(aux2.nom);
Writeln(aux2.tipo);
Writeln(aux2.color);
Writeln(aux2.hp);
Writeln(aux2.text_carta1);
Writeln(aux2.text_carta2);
Writeln(aux2.text_carta3);
Writeln(aux2.text_carta4);
Writeln(aux2.debilitat);
Writeln(aux2.resistencia);
Writeln(aux2.costretirada);
end;
Closefile(mall2);
end;

procedure RobarnCartes();
var
mall3:file of Tcarta;
aux3:Tcarta;
i,n,robat:integer;

begin
Assignfile(mall3,'baralla_a_estudi.car');
Reset(mall3);
writeln('quin nomrbre de cartes vols robar?');
readln(n);
i:=1;
Randomize;
robat:=0;
while (i<=n) do
begin
robat:=1 + random(1);
if (robat=aux3.num) then
begin
Read(mall3,aux3);
Writeln('carta robada numero:',i);
Writeln(aux3.nom);
Writeln(aux3.tipo);
Writeln(aux3.color);
Writeln(aux3.hp);
Writeln(aux3.text_carta1);
Writeln(aux3.text_carta2);
Writeln(aux3.text_carta3);
Writeln(aux3.text_carta4);
Writeln(aux3.debilitat);
Writeln(aux3.resistencia);
Writeln(aux3.costretirada);
i:=i+1;
end;
end;
Closefile(mall3);
end;

begin
WRITELN('ESCULL UNA OPCIO DEL MENU/ESCOGE UNA OPCION DEL MENU');
WRITELN('--------------------------------------------------------------------');
WRITELN('1-Crear un mall de pokemon tcg per al seu estudi / Crear un mazo de pokemon tcg para su estudio');
WRITELN('2-Llegir un mall creat des de la primera fins a la ultima carta / leer un mazo ya creado desde la primera hasta la ultima carta.');
WRITELN('--------------------------------------------------------------------');

readln(opcio);
case opcio of
1:Crearmall();
2:Llegirmall();
3:RobarnCartes();
end;


readln;
end.

Programa antes de poner el modulo:

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

type
Tcarta = record
nom: string[40];
color:string[25];
tipo:string[40];
HP:string[3];
text_carta1:string[255];
text_carta2:string[255];
text_carta3:string[255];
text_carta4:string[255];
debilitat:string[33];
resistencia:string[33];
costretirada:string[10];
end;
var
opcio: integer;

procedure Crearmall();
var
mall1:file of Tcarta;
aux1:Tcarta;
i:integer;
begin

Assignfile(mall1,'baralla_a_estudi.car');
Rewrite(mall1);
for i:=1 to 2 do
begin
Writeln('dona tots els detalls de la carta a posar en el mall');
Readln(aux1.nom);
Readln(aux1.tipo);
Readln(aux1.color);
Readln(aux1.hp);
Readln(aux1.text_carta1);
Readln(aux1.text_carta2);
Readln(aux1.text_carta3);
Readln(aux1.text_carta4);
Readln(aux1.debilitat);
Readln(aux1.resistencia);
Readln(aux1.costretirada);
Write(mall1,aux1);
end;

Closefile(mall1);
end;

procedure Llegirmall();
var
mall2:file of Tcarta;
aux2:Tcarta;
begin
Assignfile(mall2,'baralla_a_estudi.car');
Reset(mall2);
while not Eof(mall2) do
begin
Read(mall2,aux2);
Writeln('dona tots els detalls de la carta a posar en el mall');
Writeln(aux2.nom);
Writeln(aux2.tipo);
Writeln(aux2.color);
Writeln(aux2.hp);
Writeln(aux2.text_carta1);
Writeln(aux2.text_carta2);
Writeln(aux2.text_carta3);
Writeln(aux2.text_carta4);
Writeln(aux2.debilitat);
Writeln(aux2.resistencia);
Writeln(aux2.costretirada);
end;
Closefile(mall2);
end;

begin
WRITELN('ESCULL UNA OPCIO DEL MENU/ESCOGE UNA OPCION DEL MENU');
WRITELN('--------------------------------------------------------------------');
WRITELN('1-Crear un mall de pokemon nb tcg per al seu estudi / Crear un mazo de pokemon tcg para su estudio');
WRITELN('2-Llegir un mall creat des de la primera fins a la ultima carta / leer un mazo ya creado desde la primera hasta la ultima carta.');
WRITELN('--------------------------------------------------------------------');

readln(opcio);
case opcio of
1:Crearmall();
2:Llegirmall();
end;

readln;
end.

Última edición por ZERO0 fecha: 18-06-2010 a las 20:17:43. Razón: añadir odigo fuente del programa
Responder Con Cita