[caption id="attachment_939" align="aligncenter" width="357"] Matris en Caracol en Java[/caption]
Un claro ejemplo de como podemos modificar una matriz en diferentes direcciones, en este caso haremos una matriz que empiece desde el centro y se recorrerá en caracol.
[java]
import javax.swing.JOptionPane;
public class caracol
{
public static final int SUR = 1;
public static void main(String [] args)
{
int x,cont2=11,y,tot;
String mje="";
x=Integer.parseInt(JOptionPane.showInputDialog("Ingrese el tamaño de la matriz"));
y=x;
tot=(y*y)+10;
int car[][] = new int [x][x];
if(y%2==0)
{
x=(x/2)-1;
}
else
{
x=x/2;
}
int dir=1,z=x,s,e,n,o;
car[x][x]=10;
//Direcciones
s=1;
e=1;
n=2;
o=2;
//llenado de matriz
while(cont2< tot)
{
switch(dir)
{
//Sur
case 1:
for(int w=0; w< =s-1; w++)
{
if(cont2 >=tot)
{}
else
{
x++;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
}
dir=2;
s=s+2;
break;
// Este
case 2:
for(int w=0; w< =e-1; w++)
{
z++;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
e=e+2;
dir=3;
break;
// Norte
case 3:
for(int w=0; w< =n-1; w++)
{
if(cont2 >=tot)
{}
else
{
x--;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
}
n=n+2;
dir=4;
break;
// Oeste
case 4:
for(int w=0; w< =o-1; w++)
{
z--;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
o=o+2;
dir=1;
break;
}
}
String mjef="";
for(int i=0; i< =y-1; i++)
{
for(int j=0; j< =y-1; j++)
{
mjef+=car[i][j]+", ";
}
mjef+="\n";
}
JOptionPane.showMessageDialog(null,mjef);
}
}
[/java]
0 comentarios :
Publicar un comentario