cuadro magico

Iniciado por Bleach@lex, 19 Junio 2010, 22:37 PM

0 Miembros y 1 Visitante están viendo este tema.

Bleach@lex

hola
en la escuela me marcaron contruir un cuadro magic con javay pos nologro visualizarlo este es mi codigo

codigo-
import java.util.*;
import java.io.*;
public class Cuadromagico {
Scanner s;
int solve[][];
int sum;
int n;
public boolean readcase(String s){
   
   
   String lin=s;
   if(lin==null)
   return false;
   
   else
    n=Integer.parseInt(lin);
   solve=new int[n][n];
   for(int i=1;i<=(n*n);i++){
      sum +=i;
      sum /=n;
      
   }
   return true;
}
public void solvecase(){
   
   int dato=1;
   int posx;
   int posy;
   while(dato<=(n*n)){
      posx=0;
       posy=(n/2)+1;
      solve[posx][posy]=dato;
      dato++;
      posx--;
      posy++;
      //System.out.print(solve[posx][posy]+" ");
      if(posx<0)posx=n-1;
      //System.out.print(solve[posx][posy]+" ");
       if(posy>n){
          posy=0;
         if(solve[posx][posy]!=0){
         posx++;
         posy--;
         //System.out.print(solve[posx][posy]+" ");
         
      }
         }

fin codigo-

y pos nose que estoy haciendo mal o q no estoy haciendo
espero q puedan ayudarme

danielo-

#1
i´m back :) woajajajajaj!

Mare chavo, una miradita le di a tu codigo, y a simple vista se ve que no estas implementando el algoritmo para cuadros mágicos correctamente, pero bueno, lo primero, sería que pusieras entre etiquetas tu codigo para que sea mas entendible y por regla también; lo segundo sería que explicaras que hace tu codigo y que no hace.
Y tercero, suponiendo que tienes la idea de como hacerlo,  lo primero sería desarrollar el algortimo para poner el primer numero en su lugar:
Es decir, buscar la mitad de tu cuadro, facil no?
de ahi plantearte el algoritmo de los cuadros mágicos, que es muy sencillo,

Código (java) [Seleccionar]

fila-1, columna+1
//checar que no se pase de las columnas y filas establecidas
si (fila-1<0){
    fila=numero_filas
}
si(columna+1>numero_columnas){
    columnas=0
}
//seguría el algoritmo para saber que pasa si la casilla esta ocupada
si (matriz[fila][columna] diferente null){
volver a la fila y columna anterior
fila+1
//checar de nuevo que no se pase del numero de columnas y filas establecidas
//lo metes en un ciclo y listo :)
}

suerte  y saludos :)