rendered paste bodymodulo pruebaL0AS
inst clase Ficha
{
oculto entero color;
oculto entero tipo;
iniciar(entero t, entero c)
{
// RN: setTipo no declarado
setTipo(t);
color := 0;
}
getTipo() dev entero
{
dev tipo;
}
getColor() dev entero
{
dev color;
}
setTipo(entero t)
{
tipo:=t;
}
setColor(entero c)
{
color:=c;
}
imprimir()
{
escribir(getTipo()+getColor());
}
}
inst clase Casilla
{
oculto Ficha f;
oculto logico asignada;
iniciar()
{
asignada:=falso;
}
estaAsignada() dev logico
{
si (asignada = cierto) entonces
dev cierto;
sino
// CT: tipo de devolucion incorrecto
dev 1;
finsi
}
asignar(Ficha fi)
{
si (no estaAsignada()) entonces
asignada:=cierto;
f:=fi;
finsi
}
desasignar()
{
asignada:=falso;
// AS: tipo es atributo oculto
f.tipo:=0;
}
consultar() dev Ficha
{
dev f;
}
imprimir()
{
si (estaAsignada()) entonces
f.imprimir();
finsi
}
}
clase Tablero
{
oculto formacion 8,8 Casilla t;
iniciar()
{
Casilla aux;
entero i,j;
i:=1;
mientras (i<=8) hacer
j:=1;
mientras (j<=8) hacer
aux:=crear(Casilla);
aux.iniciar();
t[i,j]:=aux;
j:=j+1;
finmientras
i:=i+1;
finmientras
}
nuevaPartida()
{
Ficha aux;
Casilla aux1;
entero i,j;
i:=1;
mientras (i<=8) hacer
j:=1;
mientras (j<=8) hacer
si (i=1 O i=2) entonces
aux:=crear(Ficha);
aux.iniciar(2,0);
aux1:=t[i,j];
aux1.asignar(aux);
finsi
si (i=7 O i=8) entonces
aux:=crear(Ficha);
aux.iniciar(2,1);
aux1:=t[i,j];
aux1.asignar(aux);
finsi
j:=j+1;
finmientras
i:=i+1;
finmientras
}
imprimir()
{
Casilla aux;
entero i,j;
i:=1;
mientras (i<=8) hacer
j:=1;
mientras (j<=8) hacer
aux:=t[i,j];
aux.imprimir();
j:=j+1;
finmientras
i:=i+1;
finmientras
}
}
clase Programa
{
inicio()
{
// As: no se pueden declarar variables de clases no instanciables
Tablero t;
Tablero.iniciar();
Tablero.nuevaPartida();
Tablero.imprimir();
}
// AS: metodo incorrecto
m()
{
entero i;
i:=0;
}
}