Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - oeneika

Páginas: [1]
1
Buenas ¿como están? estoy haciendo el juego de ''La vieja'' como hago algo personal simplemente para aprender un poco mas de Pascal.. Y quería saber porque al llamar a la función Ganador en PLAY no me imprime el mensaje, se supone que si encuentra XXX debería decir ''Ganaron las X'' y si encuentra OOO deberia decir ''Ganaron las O'' pero el programa nunca lo dice, podrían ayudarme?

Yo coloque esto:
If (Ganador(M))then
Writeln('El ganador es la',S);


El código es el siguiente:


Código: [Seleccionar]
Program LaVieja;
Uses crt;
Const
Fila=3; Equis='X';
Columna=3; Cero='O';
Vacio='_';
Type
Matriz= Array[1..fila,1..columna] of Char;
Var
M: Matriz; S,Nombre: String; F:Text; Cedula:Integer;

Procedure llenarmatriz (Var M: Matriz);
Var I,J: Integer;

Begin
For I:= 1 to fila do
Begin
For J:= 1 to columna do
Begin
M[I,J]:=vacio;
end;
Writeln;
End;
End;

Procedure mostrarmatriz (Var M: Matriz);
Var I,J: Integer;

Begin
For I:= 1 to fila do
Begin
For J:= 1 to columna do
Begin
Write(M[I,J],' ');
end;
Writeln;
End;
End;

Function Ganador (Var M:Matriz):Boolean;
Var S:String; I,J:Integer; Ganar:Boolean;

Begin
Ganar:=False;
For I:= 1 to fila do
Begin
For J:= 1 to columna do
Begin
{Horizontal}
If ((M[I,J]='X') and (M[I,J+1]='X') and (M[I,J+2]='X')) then
Begin
Ganar:=True;
S:='X';
Break;
End
else
If ((M[I,J]='O') and (M[I,J+1]='O') and (M[I,J+2]='O')) then
Begin
Ganar:=True;
S:='O';
Break;
End
else
{Vertical}
If ((M[I,J]='X') and (M[I+1,J]='X') and (M[I+2,J]='X')) then
Begin
Ganar:=True;
S:='X';
Break;
End
else
If ((M[I,J]='O') and (M[I+1,J]='O') and (M[I+2,J]='O')) then
Begin
Ganar:=True;
S:='O';
Break;
End
else
{Diagonal}
If ((M[I,J]='X') and (M[I+1,J+2]='X') and (M[I+3,J+3]='X')) then
Begin
Ganar:=True;
S:='X';
Break;
End
else
If ((M[I,J]='O') and (M[I+1,J+2]='O') and (M[I+3,J+3]='O')) then
Begin
Ganar:=True;
S:='O';
Break;
End;
End;

End;
Ganador:=Ganar;
End;

Procedure Play (Var M: Matriz);
Var F,C,K:Integer; Turno: Boolean; S:String;

Begin
Turno:=True; K:=0;

While (K<9) do
Begin
If (Turno) then
Begin
Writeln('Jugador 1');
readln(F,C);
M[F,C]:=Equis;
end
else
Begin
Writeln('Jugador 2');
readln (F,C);
M[F,C]:=Cero;
End;
K:=K+1;
mostrarmatriz(M);
Turno:= Not(Turno);
end;
If (Ganador(M))then
Writeln('El ganador es la',S);
End;

Begin
Clrscr;
Writeln ('Bienvenido al juego de la vieja');
{Write ('Nombre del jugador 1: '); Readln(Nombre);
Write ('Cedula del jugador 1: '); Readln(Cedula);
Assign(F,'C:\Users\Usuario\Desktop\Lavieja.txt');
Rewrite(F);
Write('Nombre 1: ',Nombre,' Cedula 1: ',Cedula);
Close(F);}
LlenarMatriz(M);
MostrarMatriz (M);
Play (M);
readln;
End.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".