ayuda con distribucion de elementos AYUDDAAAA!
Publicado por joseefa (2 intervenciones) el 27/03/2013 19:37:39
buenas tarde, estoy elaborando la distribución de personajes para un juego y hasta ahora he hecho esto:
ESO COMPILA Y CORRE, PERO NO SE COMO HACER PARA QUE LA OPCION QUE SELECCIONE EL USUARIO YA NO ESTE DISPONIBLE, Y ADEMAS QUE NO ME REPITA LOS PERSONAJES DE LOS DEMAS JUGADORES (PORQUE CON EL RANDOM PUEDE REPETIRSE EL NUMERO)..
AYUDAAA PORFAAAA
program personajes;
const
Maxjugadores =6; // Participantes máximos.
posicionxinicial =3; // Posición inicial en el eje de las abscisas.
posicionyinicial =3; // Posición inicial en el eje de las ordenadas.
type
tipojugador = ( jugador, maquina);
// Tipo para los jugadores.
Tipocartas =(Candelabro,Cuchillo,Cuerda,LLaveInglesa,Revolver,Tubo,
SenoraBlanco,SenoraCeleste,ProfesorCiruela,
SenoritaEscarlata,CoronelMostaza,SenorVerde,
Biblioteca,Cocina,Comedor,Estudio,
Vestibulo,Salon,Ivernadero,SaladeBaile,SaladeBillar);
//Tipo para todas las cartas
Tipocartas_Armas = Candelabro..Tubo;
//Subrango para las cartas de las armas
Tipocartas_Personajes = SenoraBlanco.. SenorVerde;
//Subrango para las cartas delos personajes
Tipocartas_Habitaciones= Biblioteca..SaladeBillar;
//Subrango para las cartas de las habotaciones
Mazodecartas = array [1..21] of tipocartas;
//Arreglo para todas las cartas
tablero = array [1..5,1..5] of Tipocartas_Habitaciones;
// Arreglo de casillas.
Asesinato = record //registro de los datos del asesinato
asesino : Tipocartas_Personajes;
arma : Tipocartas_Armas;
habitacion : Tipocartas_Habitaciones;
end;
Jugadores = record // El registro de los jugadores.
Participante : tipoJugador;
personaje : Tipocartas_Personajes;
posicion : Tipocartas_Habitaciones;
Cartas : Mazodecartas;
Acusaciones : boolean;
Cartasrefutadas : Mazodecartas;
Estado : (eliminado,noeliminado);
end;
Arreglo_jugadores = array [0..maxjugadores] of Jugadores;
// Arreglo de jugadores.
(******************************************************************************)
(* INICIO DEL JUEGO *)
(******************************************************************************)
procedure iniciojuegonuevo(
var Njugadores : integer; // Cantidad de jugadores
// (entre 3 y 6).
var Persona : jugadores // Personaje que desea
); //Lee las condiciones del juego
{pre: true}
{post: 3=<Njugadores<=maxjugadores /\
(senoraBlanco<=persona.personaje<=senorVerde) }
begin
writeln('Ha decidido, iniciar una nueva partida');
writeln('Para comenzar, introduzca el numero de jugadores que');
writeln(' desea que tenga esta partida: ');
Readln(Njugadores);
WRITELN(' Ahora, escoga de la siguiente lista el');
WRITELN('personaje que desea representar:Senora Blanco,Senora');
WRITELN('Celeste,Profesor Ciruela,Senorita Escarlata, Coronel');
WRITELN(' Mostaza o Senor Verde');
WRITELN('Para seleccionarlo escriba su nombre, sin dejar espacios');
READLN(Persona.personaje);
WRITELN('Bienvenido(a) ,',persona.personaje, ' a la Mansión Tudor');
writeln;
end;
(*****************************************************************************)
(* DISTRIBUCION DE LOS PERSONAJES *)
(*****************************************************************************)
procedure selecpersonaje(
Persona : jugadores; // Personaje que desea
//presentar el usuario.
Njugadores : integer;
cartas:mazodecartas;
a_jugador: arreglo_jugadores;
var jugadormaq : jugadores // Personajes de la maquina.
); // Lee el personaje que desea ser el usuario
// y Asigna los personajes restantes a la maquina.
{pre: senoraBlanco<=persona.personaje<=senorVerde)}
{post: }
Var
j:integer;
i:integer;
m:integer;
personajes:Tipocartas_Personajes;
janterior:integer;
jactual:integer;
begin
for m:=1 to 21 do begin
cartas[m]:=Tipocartas(m);
end;
for i:=1 to njugadores-1 do begin
j:=random(5)+7;
personajes:=cartas[j];
with a_jugador[i] do
Begin
personaje:=personajes;
End;
WRITELN('Sus enemigos son ',personajes);
writeln;
End;
end;
(*****************************************************************************)
(* PROGRAMA PRINCIPAL *)
(*****************************************************************************)
var
Njugadores: integer;
Persona : Jugadores; // Registro del jugador.
Jugadormaq:jugadores;
cartas:mazodecartas;
a_jugador: arreglo_jugadores;
begin
randomize;
iniciojuegonuevo(njugadores,persona);
selecpersonaje(Persona, Njugadores, cartas, a_jugador,jugadormaq);
end.
ESO COMPILA Y CORRE, PERO NO SE COMO HACER PARA QUE LA OPCION QUE SELECCIONE EL USUARIO YA NO ESTE DISPONIBLE, Y ADEMAS QUE NO ME REPITA LOS PERSONAJES DE LOS DEMAS JUGADORES (PORQUE CON EL RANDOM PUEDE REPETIRSE EL NUMERO)..
AYUDAAA PORFAAAA
ESO COMPILA Y CORRE, PERO NO SE COMO HACER PARA QUE LA OPCION QUE SELECCIONE EL USUARIO YA NO ESTE DISPONIBLE, Y ADEMAS QUE NO ME REPITA LOS PERSONAJES DE LOS DEMAS JUGADORES (PORQUE CON EL RANDOM PUEDE REPETIRSE EL NUMERO)..
AYUDAAA PORFAAAA
program personajes;
const
Maxjugadores =6; // Participantes máximos.
posicionxinicial =3; // Posición inicial en el eje de las abscisas.
posicionyinicial =3; // Posición inicial en el eje de las ordenadas.
type
tipojugador = ( jugador, maquina);
// Tipo para los jugadores.
Tipocartas =(Candelabro,Cuchillo,Cuerda,LLaveInglesa,Revolver,Tubo,
SenoraBlanco,SenoraCeleste,ProfesorCiruela,
SenoritaEscarlata,CoronelMostaza,SenorVerde,
Biblioteca,Cocina,Comedor,Estudio,
Vestibulo,Salon,Ivernadero,SaladeBaile,SaladeBillar);
//Tipo para todas las cartas
Tipocartas_Armas = Candelabro..Tubo;
//Subrango para las cartas de las armas
Tipocartas_Personajes = SenoraBlanco.. SenorVerde;
//Subrango para las cartas delos personajes
Tipocartas_Habitaciones= Biblioteca..SaladeBillar;
//Subrango para las cartas de las habotaciones
Mazodecartas = array [1..21] of tipocartas;
//Arreglo para todas las cartas
tablero = array [1..5,1..5] of Tipocartas_Habitaciones;
// Arreglo de casillas.
Asesinato = record //registro de los datos del asesinato
asesino : Tipocartas_Personajes;
arma : Tipocartas_Armas;
habitacion : Tipocartas_Habitaciones;
end;
Jugadores = record // El registro de los jugadores.
Participante : tipoJugador;
personaje : Tipocartas_Personajes;
posicion : Tipocartas_Habitaciones;
Cartas : Mazodecartas;
Acusaciones : boolean;
Cartasrefutadas : Mazodecartas;
Estado : (eliminado,noeliminado);
end;
Arreglo_jugadores = array [0..maxjugadores] of Jugadores;
// Arreglo de jugadores.
(******************************************************************************)
(* INICIO DEL JUEGO *)
(******************************************************************************)
procedure iniciojuegonuevo(
var Njugadores : integer; // Cantidad de jugadores
// (entre 3 y 6).
var Persona : jugadores // Personaje que desea
); //Lee las condiciones del juego
{pre: true}
{post: 3=<Njugadores<=maxjugadores /\
(senoraBlanco<=persona.personaje<=senorVerde) }
begin
writeln('Ha decidido, iniciar una nueva partida');
writeln('Para comenzar, introduzca el numero de jugadores que');
writeln(' desea que tenga esta partida: ');
Readln(Njugadores);
WRITELN(' Ahora, escoga de la siguiente lista el');
WRITELN('personaje que desea representar:Senora Blanco,Senora');
WRITELN('Celeste,Profesor Ciruela,Senorita Escarlata, Coronel');
WRITELN(' Mostaza o Senor Verde');
WRITELN('Para seleccionarlo escriba su nombre, sin dejar espacios');
READLN(Persona.personaje);
WRITELN('Bienvenido(a) ,',persona.personaje, ' a la Mansión Tudor');
writeln;
end;
(*****************************************************************************)
(* DISTRIBUCION DE LOS PERSONAJES *)
(*****************************************************************************)
procedure selecpersonaje(
Persona : jugadores; // Personaje que desea
//presentar el usuario.
Njugadores : integer;
cartas:mazodecartas;
a_jugador: arreglo_jugadores;
var jugadormaq : jugadores // Personajes de la maquina.
); // Lee el personaje que desea ser el usuario
// y Asigna los personajes restantes a la maquina.
{pre: senoraBlanco<=persona.personaje<=senorVerde)}
{post: }
Var
j:integer;
i:integer;
m:integer;
personajes:Tipocartas_Personajes;
janterior:integer;
jactual:integer;
begin
for m:=1 to 21 do begin
cartas[m]:=Tipocartas(m);
end;
for i:=1 to njugadores-1 do begin
j:=random(5)+7;
personajes:=cartas[j];
with a_jugador[i] do
Begin
personaje:=personajes;
End;
WRITELN('Sus enemigos son ',personajes);
writeln;
End;
end;
(*****************************************************************************)
(* PROGRAMA PRINCIPAL *)
(*****************************************************************************)
var
Njugadores: integer;
Persona : Jugadores; // Registro del jugador.
Jugadormaq:jugadores;
cartas:mazodecartas;
a_jugador: arreglo_jugadores;
begin
randomize;
iniciojuegonuevo(njugadores,persona);
selecpersonaje(Persona, Njugadores, cartas, a_jugador,jugadormaq);
end.
ESO COMPILA Y CORRE, PERO NO SE COMO HACER PARA QUE LA OPCION QUE SELECCIONE EL USUARIO YA NO ESTE DISPONIBLE, Y ADEMAS QUE NO ME REPITA LOS PERSONAJES DE LOS DEMAS JUGADORES (PORQUE CON EL RANDOM PUEDE REPETIRSE EL NUMERO)..
AYUDAAA PORFAAAA
Valora esta pregunta


0