Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2010
ZERO0 ZERO0 is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Poder: 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
  #2  
Antiguo 18-06-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
A los moderadores...seria bueno qye abran un foro llamado "Tareas" o similar. asi sería más fácil ordenar las opiniones, este caso es precisamente un tarea de escuela...
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 18-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, ZERO0, lee nuestra guía de estilo, gracias.
Responder Con Cita
  #4  
Antiguo 19-06-2010
ZERO0 ZERO0 is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Poder: 0
ZERO0 Va por buen camino
crear programa en el cual haya un algoritmo para poder robar cartas

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por favor,ZERO0, lee nuestra guia de estilo, gracias.
Muy bien ya me lei la guia de estilo. Ahora bien, mirando el post que hice, hay algun fallo en lo que puse? ¿Qué debo corregir? Si no es así, el mensaje que me pusisteis era para que me leeyera el post no?

Gracias por adelantado.

Última edición por ZERO0 fecha: 19-06-2010 a las 00:23:51. Razón: Correción ortográfica
Responder Con Cita
  #5  
Antiguo 19-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Para mi la pregunta esta bien planteada, lo que me parece es que se deberia especificar el sitio donde se requiere que se haga lo que se necesita y no colocar todo el codigo, asi se iria mas al grano.
Por lo demas esta bien, para mi.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 19-06-2010
ZERO0 ZERO0 is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Poder: 0
ZERO0 Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Para mi la pregunta esta bien planteada, lo que me parece es que se deberia especificar el sitio donde se requiere que se haga lo que se necesita y no colocar todo el codigo, asi se iria mas al grano.
Por lo demas esta bien, para mi.
Saludos
Muy bien, ahora mismo le pongo el sitio para poder hacer la mejora:
Código:
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;
Lo que necesito es modificar el módulo que le muestro a continuación para que compile el archivo como una estructura aleatoria, que simule un robo de cartas de un mazo. Eso es todo. Por favor, si me lo puede modificar para que tenga lo que pido, modifiquemelo.

Gracias por adelantado.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cual es la mejor tecnica para crear una factura DELFIN2000 Conexión con bases de datos 6 23-10-2010 20:09:16
Para quien no haya leído las joyas de Asimov AzidRain La Taberna 16 02-03-2009 01:34:31
Imagenes de cartas para un juego gulder Varios 4 06-05-2008 14:45:15
Como crear un programa para que me formatee la PC federico1 Varios 7 02-06-2007 02:26:23
que programa para crear instalador recomiendan? ale21alito Varios 4 23-03-2005 02:42:57


La franja horaria es GMT +2. Ahora son las 22:02:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi