ayuda para java

Iniciado por arbeluc, 23 Mayo 2003, 09:46 AM

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

arbeluc

hola, necesito k laguien me ayude con un programa de java. Se trata de lo siguiente:
-Necesito saber como es el codigo en una matriz 10x10. En la que cuando coincidan 4 numeros iguales ya sea en horizontal,vertical o en diagonal me lo diga mediante un mensaje.(Es para el conecta 4) Esta parte es lounico que me falta.
- Imagino que sera facil, pero no se me ocurre la manera de ponerlo.Si me podeis ayudar.

kåhjî£

perate ahi hay algo que no entiendo, basicamente es saber si un numero se repite cuatro veces dentro de la matriz ??? o necesariamente deben ser repetidos asi:

2 2 2 2

ó

2
2
2
2

ó

2
 2
   2
     2

como es explicame bien ??
"Hay tantas cosas para gozar y nuestro paso pro la tierra es tan corto, que sufrir es una perdida de tiempo"

"Casi todas las personas son tan felices como se deciden a serlo"

arbeluc

Si es exactamente de la forma en que lo has puesto en el dibujo.

Bres

Toma, aquí tienes para el vertical y el horizontal. El diagonal tiene más tela y ahora mismo no se me ocurre como podria ser. Ya lo miraré otro día que me esté aburriendo  :P.

int[][] matriz = new int[10][10];
int i,j,nRepetidos=0;

//comprueba filas
for(i=0;i<10;i++){
   for(j=0;j<9;j++){
      int actual = matriz[i][j];
      int siguiente = matriz[i][j+1];
      if(actual==siguiente){
         nRepetidos++;
      }else{
         nRepetidos=0;
      }
      if(nRepetidos==4){
         System.out.println("Cuatro en raya (horizontal)");
         break;
      }
      j++;
   }
   if(nRepetidos==4){
      break;
   }
   i++;
}
//Comprueba columnas
   for(i=0;i<10;i++){
      for(j=0;j<9;j++){
         int actual = matriz[j][i];
         int siguiente = matriz[j+1][i];
         if(actual==siguiente){
            nRepetidos++;
         }else{
            nRepetidos=0;
         }
         if(nRepetidos==4){
            System.out.println("Cuatro en raya (vertical)");
            break;
         }
         j++;
      }
      if(nRepetidos==4){
         break;
      }
      i++;
   }

arbeluc

muxas gracias por la ayuda

kåhjî£

basandome en el codigo de Bres (no me va muy bien con java) codifique el algoritmo que hice y quedaria asi:

for(i=0;i<10;i++){
  for(j=0;j<9;j++){
     if(i==j){
int actual = matriz[i][j];
if(ianterior==actual){
   nRepetidos++;
           }else{
        int anterior=actual;
           }
      if(nRepetidos==4){
        System.out.println("Cuatro en raya (diagonal)");
        break;
     }

}
}


bueno solo compilalo (no tengo java instalado en esta maquina asi que no pude compilar) pero si mi prueba de escritorio no me falla (y espero que no, bueno y si falla me avisan toy para aprender), ese seria el codigo que te hace falta.  ;)
"Hay tantas cosas para gozar y nuestro paso pro la tierra es tan corto, que sufrir es una perdida de tiempo"

"Casi todas las personas son tan felices como se deciden a serlo"

MAJOR_TOM

Todavia no sabes programar despues del año con Felix.hay un sitio donde te solucionan todo-->Google.JAJAJAJAJAJAJ ;DBusca ahi ;D ;D ;D :P
C poWah!!!!!

lokoLOKO

alguien tiene por casualidad el codigo de un verificador de rut en java, o en applet especificamente?? lo necesito pal proyecto de fin de año... de antemano gracias compañeros!!!