Pascal/Turbo Pascal - ayuda con distribucion de elementos AYUDDAAAA!

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda con distribucion de elementos AYUDDAAAA!

Publicado por ramon (2158 intervenciones) el 31/03/2013 21:01:09
Tendrás que hacer un procedimiento o función que verifique ese echo mirando el registro jugador,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar