|
141
|
Programación / Java / Creación de Sudokus
|
en: 12 Agosto 2011, 19:58 pm
|
Hola, escribo este tema para saber si alguien tiene algún tipo de documentación, o algún código, o lo que sea sobre creación de sudokus, y con creación me refiero a creación de sudokus con distintos niveles de complejidad y, a ser posible, con solución única.
He estado buscando un buen rato por Google y lo más convincente que he encontrado estaba escrito en ActionScript y la verdad es algo que nunca he visto y el código es algo tedioso de leer.
El motivo es simplemente que quiero realizar un Sudoku en Java con su interfaz gráfica y, por supuesto, su parte para resolver los puzzles.
Si alguien tiene algún tipo de información y quiere compartirla, se lo agradeceré mucho.
Saludos y gracias de antemano.
|
|
|
143
|
Programación / Java / Re: Puerto Paralelo Java
|
en: 11 Agosto 2011, 19:41 pm
|
Creo que sería mejor que lo realizases en C o C++, porque en Java creo que tendrías que hacer uso de la interfaz nativa ( JNI) y ejecutar alguna .dll o algo por el estilo. Lo siento por no poder ayudarte en más. Saludos.
|
|
|
144
|
Programación / Java / Re: Problema con JButton y ordenación
|
en: 11 Agosto 2011, 19:39 pm
|
¿Cuál es el fallo que te da exactamente? Yo lo he compilado y ejecutado con Eclipse y no me ha dado ningún fallo.
Sí, el año pasado tuvimos Pascal y C++, este año hemos tenido C++, Java y C. No damos clases sobre el lenguaje en sí, si no de programación (salvo Java que si lo hemos visto a fondo en la asignatura de POO) y luego en las clases de prácticas es donde ya vemos las caracteristicas fundamentales del lenguaje. Pero vamos, siempre he pensado que la documentación de un lenguaje siempre va a estar ahí, la cuestión es saber usarlo xD.
La verdad que es mucho dinero el de un piso, yo este año he estado viviendo en uno y...se han ido muchas muchas perras jajaja.
|
|
|
145
|
Programación / Java / Re: Problema con JButton y ordenación
|
en: 11 Agosto 2011, 15:54 pm
|
Valkyr, estoy consiguiendo más decente con lo que me has pasado, pero esta parte del código no me compila y no tengo ni idea de porque es xDD //Este metodo es para especificar que hacer al pulsar la X de la ventana dispose(); } });
Acabo de mirar el proyecto que tengo y lo tengo exactamente igual, así que lo único que se me ocurre es que no has importado estos dos paquetes: import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;
Compruébalo, y si no es ese el problema pues me dices!! PD: Valkyr, acabo de darme cuenta de que somos paisanos!! xDD Jajaja cierto, no estamos muy lejos!! Poca gente he encontrado por aquí que sea de la región xD. Por cierto, yo acabo de terminar 2º año de la carrera y a penas hemos visto cosas de interfaz gráfica de ventanas, pero por Internet está todo muy bien explicado y con Java la mayoría de cosas son bastante sencillicas. Saludos y ya nos comentas!
|
|
|
146
|
Programación / Java / Re: Problema con JButton y ordenación
|
en: 9 Agosto 2011, 20:23 pm
|
Perdóname porque tan solo he leído el principio del código y he pensado en responderte algo que espero que te ayude. Si quieres crear una ventana yo haría lo siguiente: Heredaría de la clase JFrame, y pondría como atributos las tres labels y los tres fields, además del JButton. Es decir, sería algo así: public class MiVentana extends JFrame { public MiVentana (String tituloVentana ){ super(); setTitle(tituloVentana); getContentPane().setLayout(null); setResizable(false); //False indica que el usuario no puede cambiar el tamaño de la ventana, true indica que si puede cambiarlo label1 = new JLabel("Capital Inicial"); label2 = new JLabel("Tipo de interés"); botonCalculos = new JButton("Generar cuadro"); //Mostrar Informacion en otro JFrame o en un JDialog } }); //Este metodo es para especificar que hacer al pulsar la X de la ventana dispose(); } }); //Los valores de X, Y, WIDTH, HEIGHT los especificas para colocar los elementos en la posicion que desees de tu ventana getContentPane().add(label1); label1.setBounds(x, y, width, height); getContentPane().add(label2); label2.setBounds(x, y, width, height); getContentPane().add(label3); label3.setBounds(x, y, width, height); getContentPane().add(campo1); campo1.setBounds(x, y, width, height); getContentPane().add(campo2); campo2.setBounds(x, y, width, height); getContentPane().add(campo3); campo3.setBounds(x, y, width, height); getContentPane().add(botonCalculos); botonCalculos.setBounds(x, y, width, height); //Desde aqui hasta el final es para que la ventana aparezca centrada en la pantalla y para mostrarla pack(); java. awt. Dimension screenSize = java. awt. Toolkit. getDefaultToolkit(). getScreenSize(); //El metodo siguiente cambia el tamaño de la ventana setLocation((screenSize.width - 540) / 2, (screenSize.height - 280) / 2); setVisible(true); } }
En este código estamos creando una ventana personalizada. En la acción que debes realizar al pulsar el botón (he puesto un comentario indicando donde es) podrías o crear un JFrame nuevo, añadir los elementos que quieras mostrar o crear un JDialog y mostrar la información. Me imagino que habrá muchas mas formas de realizar lo que tú quieres y que la forma que te propongo no será la mejor. Pero yo es una de las formas que he usado y me ha ido bastante bien. Cualquier duda pregunta Saludos.
|
|
|
147
|
Programación / Programación General / Re: Algoritmo
|
en: 8 Agosto 2011, 15:26 pm
|
¿Una idea diferente? sí es un método que ya está creado de forma teórica e implementado en varios lenguajes además de en pseudocódigo, no te pueden dar una idea diferente, ya que la idea en sí es esa.
Saludos.
|
|
|
148
|
Programación / Java / Re: arreglos de cadenas
|
en: 4 Agosto 2011, 13:52 pm
|
Sí lo vas a hacer con arrays de cadenas no sería complicado. Tú tienes ahora mismo los métodos que preguntan al usuario la información, luego en el método main tan solo debes ir llamandolos y ya está. Yo quizás en lugar de hacer un método para cada cosa lo habría hecho todo en el mismo main ya que así no tendría que estar declarando constantemente un nuevo BufferedReader, o lo pasaría como parámetro. Podrías hacer algo así: System. out. println("Introduzca el nombre y primer apellido del cliente numero " + numero + ":"); nombre=en.readLine(); return nombre; } System. out. println("Introduzca la fecha de ingreso del cliente numero " + numero + ":"); fi=en.readLine(); return fi; } System. out. println("Introduzca la fecha de retiro del cliente numero " + numero + ":"); fr=en.readLine(); return fr; } System. out. println("Introduzca el tipo de habitacion numero " + numero + ":"); hab=en.readLine(); return hab; } public static void main (String[] args ){ //Declaramos el buffer de lectura para leer de teclado //Declaramos los arrays que contendran la informacion introducida por el usuario //Insertamos en los arrays la informacion devuelta por los metodos for(int i = 0; i<10; i++){ clientes[i] = nomcliente(br, i+1); //Aqui ponemos i+1 para que muestre el primer cliente con numero 1 en lugar de 0 ingreso[i] = fechaingreso(br, i+1); retiro[i] = fecharetiro(br, i+1); tipoHabitacion[i] = tiphab(br, i+1); } //Ahora si quieres puedes recorrer de nuevo los arrays y mostrar la informacion: for(int i = 0; i<10; i++){ System. out. println("Cliente: " + clientes [i ]); System. out. println("Fecha ingreos: " + ingreso [i ]); System. out. println("Fecha retiro: " + retiro [i ]); System. out. println("Tipo habitacion: " + tipoHabitacion [i ]); System. out. println(); //Para que deje una linea en blanco entre cada uno. } }
Saludos.
|
|
|
149
|
Programación / Java / Re: Creando una subclase de Point
|
en: 1 Agosto 2011, 21:39 pm
|
La herencia en java sirve para la reutilización de código entre otras cosas, y aunque en tu caso no sean demasiadas lineas de código, o demasiadas funcionalidades, la herencia viene estupendamente. Además, es un buen hábito el desarrollar las clases empleando el código de otras que ya están programadas, por varios motivos, entre ellos, que te ahorras mucho trabajo, y si detectas un error tan solo debes corregirlo en sitios muy puntuales.
Como tú dices, si no heredases de Point podrías declarar los tres atributos y asignarles valores tal y como dices, aunque heredando también puedes declarar tres atributos con el mismo nombre que los que hay en la clase padre y manipularlos, pero estarías duplicando atributos, lo cual no es que sea muy bueno.
Yo dejaría el código como está, heredando de Point, así si alguna vez quisieses añadir alguna funcionalidad para la clase Punto la tendrías también en la clase Point3D.
Saludos.
|
|
|
150
|
Programación / Java / Re: Creando una subclase de Point
|
en: 1 Agosto 2011, 12:51 pm
|
Lo de super(x, y) se tiene que usar a la fuerza porque estás heredando de la clase Point, y los atributos de esa clase deben ser inicializados con el constructor de esa clase, ya que tú en tu clase Punto3D no puedes acceder de forma directa a esos atributos. Es decir, tú no podrías hacer lo siguiente: public Punto3D(int x, int y, int z){ this.x = x; this.y = y; this.z = z; }
El compilador te daría error, ya que estás intentando acceder a atributos que no están declarados en tu clase, si no que han sido heredados. Por el mismo motivo en el método move debes hacer una llamada a super.move(x, y) porque si no, no podrías cambiar el valor de esos atributos. Saludos.
|
|
|
|
|
|
|