Pascal/Turbo Pascal - Necesito ayuda en un proyecto

 
Vista:

Necesito ayuda en un proyecto

Publicado por Alejandro (1 intervención) el 28/01/2012 16:26:57
el proyecto se trata de hacer un domino en pascal, se trata de que 1 jugador juegue contra la computadora, el jugador y la computadora poseen 14 fichas, sin pote,el que tenga el doble 6 empieza la partida, después se colocan las fichas en la 'mesa',el jugador podrá escoger que ficha colocar,si la ficha que escogió no concuerda con el de la mesa escoge otra y la computadora es automático, así sucesivamente hasta que uno de los dos se quede sin ficha o no puede colocar mas fichas, al final el jugador que se quedo sin fichas gana los puntos del otro( se suman las fichas que le quedan al perdedor y se le suman al ganador que posee 0 fichas) , el jugador en cualquier momento del juego tendrá la opción salirse de la partida, es como cualquier juego de domino normal,no es necesario un interfaz gráfico solo que se vean como imprime las fichas y la mesa como 2/2 o 1:6 ( así serian las fichas ).
ya tengo la primera parte pero no se como hacer que se repita la jugada, lo intente con un case of pero no se que condición para que repita las jugadas, también con un repeat pero no se porque no me repite las jugadas, y un while lo mismo, creo que es una de mis condiciones que esta mal,o un begin o end, .hay muchas variable que no se usan XD era por si las dudas si las necesitaba, si me podrían ayuda a corregir lo que tengo se los agradecería.


program domino;
type
matriz=array[1..2,1..14] of integer;
vector=array[1..100] of integer;
var
z,priC,PriJ,Fiz,Fde,o,t,y,a,b,m,i,j,p,contador,fichasC,fichasJ1,puntos1,puntosc:integer;
Jugador1, pote, computadora: matriz;
s,n,resp:string;
mesa:vector;
termino,emp,encontro,comp,juga:boolean;
fichas: array [0..6, 0..6] of boolean;

procedure llenar (var ficha:matriz; n:integer); {rellena las ficha de los jUgadores y pote}
var
j,c1,c2:integer;
begin
randomize;
j:=1;
while (j <= n) do
begin
c1:= random(7);
c2:= random(7);
if (not(fichas[c1,c2]) and not(fichas[c2,c1])) then
begin
ficha[1,j] := c1;
ficha[2,j] := c2;
fichas[c1,c2] := true;
fichas[c2,c1] := true;
j := j + 1;
end;
end;
end;

procedure escribir (m:matriz; n:integer); {para imprimir las fichas}
var
i, j : integer;
begin
for i:= 1 to 2 do
begin
for j:= 1 to n do
write (m[i,j], ' ');
writeln;
end;
end;

{------------------------------------------------------------------- } {programa principal}

begin
for i:= 0 to 6 do
begin
for j:= 0 to 6 do
fichas[i,j] := false;
end;


contador:=0;
While contador <> 1 do {si son mas de 1 jugador}
begin
writeln('cuantos jugadores van a participar ?');readln(p);
writeln;
if p<>1 then
begin
writeln('solo se permite 1 jugador');
writeln;
end
Else
contador:=contador+1;
end;


If p=1 then
begin
llenar(jugador1,14);
llenar(computadora, 14);
writeln('JUGADOR 1');
escribir(jugador1,14);
writeln;
writeln('COMPUTADORA');
escribir(computadora,14);
writeln;
readln;
{------------------------------------------------------------------------------} { para saber cual jugador empieza primero}
fichasJ1:=14;
fichasC:=14;
comp:=false;
juga:=false;
emp:=false;
termino:=false;

for m:=1 to 14 do
begin
If computadora[1,m] and computadora[2,m]=6 then
begin
writeln('la computadora empieza la partida');
comp:=true;
emp:=true;
juga:=false;
end;
end;
while emp=false do
begin
writeln('usted empieza la partida');
juga:=true;
emp:=true;
comp:=false;
end;
writeln;

{------------------------------------------------------------------------} {iniciar la partida}

y:=50;
z:=51;
resp:='s';
writeln('desea iniciar la partida (s/n) : ');readln(resp);
writeln;
begin
if resp<>'s' then
writeln(' cierre la pantalla para iniciar otra partida')
else
priJ:=0;
priC:=0;


while (fichasC<>0) or (fichasJ1<>0) do

begin
if comp=true then
begin
if priC=0 then {para que la comp ponga la primera ficha, si es su turno}
begin
writeln('mesa');
mesa[y]:=computadora[1,1];
mesa[z]:=computadora[2,1];
writeln(mesa[y]);
writeln(mesa[z]);
writeln;
comp:=false;
juga:=true;
priC:=1;
priJ:=1;
Fiz:=mesa[y];
Fde:=mesa[z];
encontro:=false;
computadora[1,1]:=-1;
computadora[2,1]:=-1;
fichasC:=fichasC-1;
{ writeln('computadora');
escribir(computadora,14); }
writeln;
end;
end;

if comp=true then
begin
encontro:=false;
for m:=1 to 14 do
begin
while encontro=false do
begin
if (computadora[1,m] = Fiz) or (computadora[2,m] = Fiz) then
begin
writeln('mesa');
y:=y-1;
mesa[y]:=computadora[1,m];
writeln(mesa[y]);
y:=y-1;
mesa[y]:=computadora[2,m];
writeln(mesa[y]);
writeln;
encontro:=true;
comp:=false;
juga:=true;
Fiz:= computadora[2,m];
computadora[1,m]:=-1;
computadora[2,m]:=-1;
end
else
begin
if (computadora[1,m] = Fde) or (computadora[2,m] = Fde) then
begin
writeln('mesa');
z:=z+1;
mesa[z]:=computadora[1,m];
writeln(mesa[z]);
z:=z+1;
mesa[z]:=computadora[2,m];
writeln(mesa[z]);
writeln;
encontro:=true;
comp:=false;
juga:=true;
Fde:= computadora[2,m];
computadora[1,m]:=-1;
computadora[2,m]:=-1;
end;
end;
end;
end;
end;
end; { final de la computadora }
{ comienza del jugador 1}
begin
if juga=true then
begin
if priJ=0 then {para que la jugador ponga la primera ficha, si es su turno}
begin
writeln(' Cual ficha desea colocar primero');readln(o);
writeln;
writeln('mesa');
mesa[y]:=Jugador1[1,o];
mesa[z]:=Jugador1[2,o];
writeln(mesa[y]);
writeln(mesa[z]);
writeln;
comp:=true;
juga:=false;
priJ:=1;
priC:=1;
Fiz:=mesa[y];
Fde:=mesa[z];
Jugador1[1,o]:=-1;
Jugador1[2,o]:=-1;
fichasJ1:=fichasJ1-1;
encontro:=false;
{ writeln('Jugador 1 ');
escribir(jugador1,14);}
writeln;
end;
end;

if juga=true then
begin
writeln(' Cual ficha desea colocar ');readln(o);
writeln;
begin
if (jugador1[1,o] = Fiz) or (jugador1[2,o] = Fiz) then
begin
writeln('mesa');
y:=y-1;
mesa[y]:=jugador1[1,o];
writeln(mesa[y]);
y:=y-1;
mesa[y]:=jugador1[2,o];
writeln(mesa[y]);
writeln;
fichasJ1:=fichasJ1-1;
encontro:=false;
juga:=false;
comp:=true;
Fiz:=jugador1[2,o];
Jugador1[1,o]:=-1;
Jugador1[2,o]:=-1;
end
else
if (jugador1[1,o] = Fde) or (jugador1[2,o] = Fde )then
begin
writeln('mesa');
z:=z+1;
mesa[z]:=jugador1[1,o];
writeln(mesa[z]);
z:=z+1;
mesa[z]:=jugador1[2,o];
writeln(mesa[z]);
writeln;
fichasJ1:=fichasJ1-1;
encontro:=false;
juga:=false;
comp:=true;
Fde:=jugador1[2,o];
Jugador1[1,o]:=-1;
Jugador1[2,o]:=-1;
end;

end; {comienso del jugador 1}

end; {while termino}
end; {comienso del juego}

end; {resp s }

end; {p=1}

readln;
end. {final del programa}



{ if fichasJ1=0 then para sumar lo puntos de los jugadore, no esta dentro del programa aun
begin
for t:=1 to 2 do
begin
for m:=1 to 14 do
begin
puntos1:=puntos1+computadora[t,m];
if
end;
end;
writeln('LOS PUNTOS DEL JUGADOR SON ', puntos1 );
readln;
end
else
if fichasC=0 then
begin
for a:=1 to 2 do
begin
for b:=1 to 14 do
begin
puntosC:=puntosC+jugador1[a,m];

end;
end;
writeln('LOS PUNTOS DE LA COMPUTADORA SON ', puntosC );
readln;
end;
end; }
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

Necesito ayuda en un proyecto

Publicado por ramon (2158 intervenciones) el 29/01/2012 22:05:37
{Es tu programa con correcciones para que repita las partidas del jugador y ordenador pero
te queda mucho que realizar para que funcione bien el juego suerte}

program pru;
uses
crt;
type
matriz = array[1..2,1..14] of integer;
vector=array[1..100] of integer;

var
fichas: array [0..6, 0..6] of boolean;
Jugador1, pote, computadora: matriz;
Fiz,Fde,priC,PriJ, y, z, m, i : integer;
termino,emp,encontro,comp,juga:boolean;
contador,fichasC,fichasJ1,puntos1,puntosc:integer;
mesa:vector;
tecla : char;


procedure llenar (var ficha:matriz; n:integer); {rellena las ficha de los jUgadores y pote}
var
j,c1,c2:integer;
begin
randomize;
j:=1;
while (j <= n) do
begin
c1:= random(7);
c2:= random(7);
if (not(fichas[c1,c2]) and not(fichas[c2,c1])) then
begin
ficha[1,j] := c1;
ficha[2,j] := c2;
fichas[c1,c2] := true;
fichas[c2,c1] := true;
j := j + 1;
end;
end;
end;

procedure escribir (m:matriz; n:integer);
var
i, j : integer;
begin
for i:= 1 to 2 do
begin
for j:= 1 to n do
write(m[i,j], ' ');
writeln;
end;
end;

procedure iniciojuego;
begin
llenar(Jugador1,14);
llenar(computadora,14);
writeln('JUGADOR 1');
escribir(jugador1,14);
writeln;
writeln('COMPUTADORA');
escribir(computadora,14);
for m:=1 to 14 do
begin
If computadora[1,m] and computadora[2,m]=6 then
begin
writeln;
writeln('la computadora empieza la partida');
comp:=true;
emp:=true;
juga:=false;
end;
end;
while emp=false do
begin
writeln;
writeln('usted empieza la partida');
juga:=true;
emp:=true;
comp:=false;
end;
pric := 0;
priJ := 0;
fichasC := 14;
fichasJ1 := 14;
end;

procedure juegacomputadora;
begin
if (priC = 0) and (comp = true) then {para que la comp ponga la primera ficha, si es su turno}
begin
writeln('mesa');
mesa[y] := computadora[1,1];
mesa[z] := computadora[2,1];
writeln(mesa[y]);
writeln(mesa[z]);
comp := false;
juga := true;
priC := 1;
priJ := 1;
Fiz := mesa[y];
Fde := mesa[z];
encontro := false;
computadora[1,1] := - 1;
computadora[2,1] := - 1;
end
else
begin
if (comp = true) and (priC > 0) then
begin
encontro := false;
while (encontro = false) or (m < 14) do
begin
for m := 1 to 14 do
begin
if (computadora[1,m] = Fiz) or (computadora[2,m] = Fiz) then
begin
writeln('mesa');
y := y - 1;
mesa[y] := computadora[1,m];
writeln(mesa[y]);
y := y - 1;
mesa[y] := computadora[2,m];
writeln(mesa[y]);
encontro := true;
comp := false;
juga := true;
Fiz := computadora[2,m];
computadora[1,m] := - 1;
computadora[2,m] := - 1;
end
else
begin
if (computadora[1,m] = Fde) or (computadora[2,m] = Fde) then
begin
writeln('mesa');
z := z + 1;
mesa[z] := computadora[1,m];
writeln(mesa[z]);
z := z + 1;
mesa[z] := computadora[2,m];
writeln(mesa[z]);
encontro := true;
comp := false;
juga := true;
Fde := computadora[2,m];
computadora[1,m] := - 1;
computadora[2,m] := - 1;
end;
end;
end;
end;
end;
end;
fichasC := fichasC - 1;
end;

procedure juegajugador;
var
o : integer;
begin
if priJ = 0 then {para que la jugador ponga la primera ficha, si es su turno}
begin
writeln(' Cual ficha desea colocar primero');readln(o);
writeln;
writeln('mesa');
mesa[y] := Jugador1[1,o];
mesa[z] := Jugador1[2,o];
writeln(mesa[y]);
writeln(mesa[z]);
comp := true;
juga := false;
priJ := 1;
priC := 1;
Fiz := mesa[y];
Fde := mesa[z];
Jugador1[1,o] := - 1;
Jugador1[2,o] := - 1;
encontro := false;
end
else
begin
if juga = true then
begin
writeln(' Cual ficha desea colocar ');readln(o);
writeln;
begin
if (jugador1[1,o] = Fiz) or (jugador1[2,o] = Fiz) then
begin
writeln('mesa');
y := y - 1;
mesa[y] := jugador1[1,o];
writeln(mesa[y]);
y := y - 1;
mesa[y] := jugador1[2,o];
writeln(mesa[y]);
encontro := false;
juga := false;
comp := true;
Fiz := jugador1[2,o];
Jugador1[1,o] := - 1;
Jugador1[2,o] := - 1;
end
else
begin
if (jugador1[1,o] = Fde) or (jugador1[2,o] = Fde )then
begin
writeln('mesa');
z := z + 1;
mesa[z] := jugador1[1,o];
writeln(mesa[z]);
z := z + 1;
mesa[z] := jugador1[2,o];
writeln(mesa[z]);
encontro := false;
juga := false;
comp := true;
Fde := jugador1[2,o];
Jugador1[1,o] := - 1;
Jugador1[2,o] := - 1;
end;
end; {comienso del jugador 1}
end; {while termino}
end;
end;
fichasJ1 := fichasJ1 - 1;
end;

begin
clrscr;
iniciojuego;
if comp = true then
juegacomputadora
else
juegajugador;
repeat
if comp = true then
begin
clrscr;
writeln('COMPUTADORA');
escribir(computadora,14);
writeln(mesa[y]);
writeln(mesa[z]);
juegacomputadora;
end;
if juga = true then
begin
clrscr;
writeln('JUGADOR 1');
escribir(jugador1,14);
writeln(mesa[y]);
writeln(mesa[z]);
juegajugador;
end;
until (fichasJ1 <= 0) or (fichasC <= 0);
end.
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

Necesito ayuda en un proyecto

Publicado por Alejandro (1 intervención) el 31/01/2012 00:49:56
gracias men, te lo agradezco mucho, gracias a ti pude terminar mi proyecto, aunque aun tengo un problema con las comparaciones para colocarlo en le mesa, pero eso se corrigen con otras variables, lo demás ya lo tengo, de verdad gracias XD. si tengo otro problema se que hay alguien en que puedo confiar.
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

Necesito ayuda en un proyecto

Publicado por Elmer (1 intervención) el 31/01/2012 06:01:15
Oye puedes colocar el proyecto que funcione por completo quede con algunas, tambien lo necesito para mi proyecto.
Por favor.
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