Sudoku en Java, Aplicaciones vistosas en modo consola
Por Francisco I. Leyva en General, Java el 02.Nov.2006

¿Yo y mis tÃtulos verdad? en esta ocasión les traigo el código fuente de un Sudoku hecho en Java, este programa no te resuelve Sudokus aclaro, solamente fue un encargo que me hicieron en la Universidad para el manejo de arreglos con Java, y tiene dos niveles de dificultad. Es decir que no es nada del otro mundo, a excepción de la forma en que se imprime el juego en modo consola.
Como pueden ver también se pueden hacer aplicaciones agradables en la frÃa consola de comandos, aprovechándonos de los caracteres ASCII.
Descarga el Sudoku aquÃ.
En el código fuente puedes encontrar los métodos para hacer este tipo de vistas, eres libre de modificarlo, venderlo, y entregarlo en la Universidad como si fuera tuyo. xD
Saludos.




inicio
21 Comentarios
Mila
06. Dic, 2006
Hola eres lo máximoooooooooooooo gracias x el código
I love youuuuuuuuuuuuuu…:)!!!
Francisco I. Leyva
06. Dic, 2006
jaja, lo sé. u.u
ntc, gracias por visitar el sitio. =)
Hola!!!
27. Abr, 2007
Que libro estudiaste para hacer ese juego?, te quedo muy bien.
Saludos.
Francisco I. Leyva
27. Abr, 2007
Hola, no estudié ninguno la verdad. Nos explicaron como se jugaba (las reglas y todo eso) y pues a programar. =)
Lo visual se me ocurrió nada más al ver los caracteres del código ASCII y por querer hacerlo más bonito. =)
Saludos.
Jessik
14. May, 2007
oye muchisimas gracias….. esq ya llevaba mucho tiempo tratando y nada.
Marcelo
22. Jul, 2007
Java es un lenguaje “orientado a objetos”. El código no me pareció orientado a objetos. Igualmente se valora mucho la actitud de compartir las cosas que haces. Te felicito, estoy seguro que mejorarás tu código.
ElectroN
22. May, 2008
oye! muchas gracias, por el codigo, ojala hubiera mas gente como tu y como yo!, ¿por que me incluyo y a que me refiero?, a que alla gente que le gusta colaborar con algunos codigos, ( tampoco todo molidito ), pero si a cultivar el sentido de software libre.
De nuevo muchas gracias a ti.
alejandro
02. Jul, 2008
hola soy desarrollador java y esto es para el personaje que puso “no me parecio orientado a objetos” con toda la mejor onda del mundo, no se refiere a objetos visuales, cosas que que se ven, hace referencia a la programacion multihilo, a la versatilidad de concatenar todo con un objeto o clase, que es una gran caracteristica de java, gente que no nos gane la ignoransia y a aprender un poco mas, gracias
Juan Carlos
30. Ago, 2008
Muchisimas gracias Francisco, precisamente me toca llevar de tarea un sudoku en java.
Un saludo desde Colombia y de nuevo gracias por colaborar
Diego
30. Sep, 2008
Muy interesante y prolijo, Francisco. Y además sumamente fácil de leer y entender…
De cualquier forma, a casi dos años de la publicación de este Sudoku en Java, ya debes ser un programador lo suficientemente avanzado como para reconocer que Marcelo (22/07/2007) tiene razón y Alejandro (02/07/2008) está equivocado.
Un programa donde se define una única clase con todos los métodos calificados como “static” no es otra cosa que una forma de hacer programación procedural o procedimental en Java.
Cuando un programa es “orientado a objetos”, aparecen en él conceptos tales como el encapsulamiento (es decir, los diferentes objetos poseen atributos preferentemente privados y por lo tanto sólo accesibles mediante métodos públicos), herencia (es decir, debe haber una jerarquÃa de clases), polimorfismo, etc…
Una de las consecuencias de aprender primero el paradigma procedural o procedimental, es que cuesta pasar luego al paradigma de la programación orientada a objetos. El hecho de usar un lenguaje orientado a objetos no garantiza que nuestros programas lo sean también. Eso es probablemente lo que Marcelo (22/07/2007) querÃa decir.
Saludos!
Haruo
03. Dic, 2008
Oe la verdad es q tu programa es una porqueria si lo hago correr con el jcreator man yo pedia que emulara una pantalla loca y que sus marcos no sean tan abstractos osea minimo por cada insercion de dato borrate la pamntallita ( clsrsc();) wenio Joder
Haruo
03. Dic, 2008
Weni ni modo seguire buscando en otro lado
Haruo
03. Dic, 2008
weno ni modo seguire buscando en otro lado
Guillermo
06. Abr, 2009
Hola yo tambien quiero hacer un sudoku en java pero en lugar de que sea uno ya predeterminado, genere Sudokus usando numeros aleatorios y condicionales, el problema es que genera tantos numeros que se le acaba la memoria a la maquina virtual y me produce error StackOverflow, muchos me han dicho que es por que produce un bucle infinito pero comprobe que si quito 2 de las 3 condicionales el programa funciona o tambien veo que si borro todo lo que tengo en una clase llamada LlenarSudoku y pego esto:
N++;
if(N>9){
N=1;}ValidarSudoku();
Me corre sin problema debido a que crea el mismo sudoku y no necesita generar muchos numeros pero lo que quiero es saber como generar tantos numeros aleatorios pero al mismo tiempo no estancarse, espero que puedan ayudarme, estaria muy agradecido.
PD: este es mi programa:
/**
* @(#)GenerarSudoku.java
*
*
* @author
* @version 1.00 2009/4/3
*/
public class GenerarSudoku {
int N=0;
int [][][][] a;
int J=0;
int K=0;
int L=0;
int M=0;
public void HacerSudoku(){
a= new int [3][3][3][3];
ValidarSudoku();
}
public void LlenarSudoku(){
N=(int)(Math.random()*9+1);
ValidarSudoku();
}
public void ValidarSudoku(){
for(int l=0;l<3;l++){
for(int m=0;m<3;){
if(a[J][K][l][m]==N||a[J][l][L][m]==N||a[l][K][m][M]==N){
LlenarSudoku();
}else m++;
}
}
a[J][K][L][M]=N;
M++;
if(M==3){
M=0;
L++;
if(L==3){
K++;
L=0;
M=0;
if(K==3){
K=0;
J++;
if(J==3){
J=0;
ImprimirSudoku();
}else LlenarSudoku();
}else LlenarSudoku();
} else LlenarSudoku();
}else LlenarSudoku();
}
public void ImprimirSudoku(){
for(int j=0;j<a.length;j++){
for(int k=0;k<a.length;k++){
System.out.println(“arreglo “+j+k);
for(int l=0;l<a.length;l++){
for(int m=0;m<a[l].length;m++){
if(m==2){
System.out.println(a[j][k][l][m]+” “);
}else System.out.print(a[j][k][l][m]+” “);
}
}
}
}
System.exit(0);
}
public static void main(String[] args) {
GenerarSudoku GS=new GenerarSudoku();
GS.HacerSudoku();
}
}
Mark
18. Abr, 2009
Muy buen aporte,
gracias
Eso es ser altruista con la comunidad
HoR
15. May, 2009
hola amiGo ioo trabajo con el jcreatOr
y nadamass no funciona correctament tu CodiGo en est programa!!!
SaluDoX
leiino
30. May, 2009
Muy buen aporte, no funciona del todo bien, pero es un plus para lo q deseo. Gracias.
Melissa
01. Jun, 2009
Muuuchas gracias! Chido que dejes checar el código. Thanks Vales miil ochomil jaja
LEONARDO
12. Sep, 2009
HOLA BUENAS M PUEDES PASAR ESE CODIGO, PERO DONDE EL USUARIO ES EL Q TIENE Q INTRODUCIR LOS 81 NUMERO
Sarahi
19. Sep, 2009
A casi 3 años de tu post y tu muy buena colaboracion, te digo gracias y te admiro por compartir codigo.
A estas alturas quiza ya hasta titulado estes!!! No lo se jeje pero muchas gracias.
alvaro carvajal
27. Oct, 2009
HOLA SOCIO TU DE CASUALIDAD TIENES POR HAY EL JUEGO DEL AHORCADO, LO NECESITO PARA UN TRABAJO DE LA U, GRACIAS MI CORREO ES alvaro_carvajal_87@hotmail.com
Dejar comentario: