Tengo un proyecto en la univ. que es hacer un ajedrez en java, ¿alguien sabe de una pagina que me muestre como hacerlo?, o que hay alguien que me pueda guiar para hacer el juego.
Uso el Jdeveloper 10g de oracle.
Copyright © 2024 Q2A.ES - All rights reserved.
Answers & Comments
Verified answer
¡Siéntate y programa! je je
Primero que nada es TU proyecto para la universidad. Te puedo pasar unos lineamientos generales como para orientarte, pero te aconsejo que lo pienses y resuelvas tu mismo.
Bueno... hablando en serio. Antes de escribir código “pensemos en java” pensemos en objetos. Lo primero que necesitas para jugar al ajedrez es un tablero piezas y las leyes del juego (donde incluimos las leyes de movimiento de las piezas, cuando se gana, quien mueve, cuando se mueve, cuantos jugadores participan)
Clase tablero: El tablero, esta compuesto por casillas, las cuales se pueden representar por una matriz de enteros, tendrá que tener un método para dibujarse. Pero eso es parte de la interfase grafica, que te la dejo a gusto tuyo.
En el tablero incluimos las piezas, y aquí viene el primer conflicto. 1) ¿quién se mueve? Y 2) ¿dónde se mueve?.
1) Se mueve la pieza, así que la primera intuición es asignarle a la pieza las leyes que le permitan moverse. Pero he de aquí que para hacer esto necesita saber ¿donde esta parado en el tablero? (donde se mueve, su mundo) Y no solo esto sino, ¿donde termina? el tablero y si ¿alguna pieza se cruza en su camino? ¿es amiga o enemiga? Son muchas preguntas para una pobre pieza de ajedrez (a mi criterio)
2) Se mueve en el tablero (y el tablero sabe todo, je je ) Sabe donde esta cada pieza donde empieza, donde termina, que casilla esta ocupada. Lo único que no sabe son las leyes de movimiento de las piezas. Si le proporcionamos eso, no ahorramos un montón de mensajes entre piezas y tablero.
A mi criterio lo único que tiene que hacer un pieza es identificarse.
Mas si codificas la matriz del tablero como por ejemplo, 1 peón; 2 torre; 3 caballo; 4 alfil; 5 reina; 6 rey. Y le pones 1 al jugador 1; y 2 al jugador 2. y le pones un 0 a la casilla vacía. Una casilla ocupada por el jugador 1 con un caballo tendía en la matriz un valor de 13, una casilla ocupada por el jugador 2 por un peón: 21
Retomando, necesitamos jugadores que tendrán un turno (cuando le toca a uno no le toca al otro) el cual puede proponer el movimiento de una pieza que el tablero debe confirmar si es posible o no hacer.
Hasta aquí el juego. Ahora si tienes que programar un jugador para que juegue. Esa es otra historia y me supongo que la tienes que contar. ;)
Aquí te paso dos direcciones que te pueden ayudar a darle inteligencia a tu jugador.
http://www.dcc.uchile.cl/~jegger/memoria/node36.ht...
http://www.iiia.csic.es/~pedro/busqueda6-juegos.pd...
Hola,
Primero que nada necesitas definir el algoritmo que vas a utilizar (si no recuerdo mal es un problema en el que se sugieren soluciones en libros de inteligencia artificial), una vez que sepas lo que quieres hacer haz casos de uso, que son las acciones que puede llevar acabo el usuario, por ejemplo, mover una pieza, hacer enroque...
Después define que métodos necesitas para cada caso de uso (por ejemplo para mover una pieza) y a que objetos van a pertenecer. Conforme vayas avanzando en definir los métodos es posible que cambies de objetos.
Una vez que tengas todos los métodos que necesitas asigna los parámetros y verifica que tengas todo lo que necesitas a la mano.
Y al final sólo llenas el contenido de los métodos.
Nota: En JDeveloper puedes hacer un documento UML de java donde definas lo que necesitas (clases, métodos, javadoc ...) y después le puedes decir que genere el código fuente y solo tienes que llegar lo que hace cada método.
Es demaciado complejo, te recomiendo que busques algo de material en www.lawebdelprogramador.com seguramente encontrarás códigos y juegos pre-fabricados para analizarlos y aprender cosas nuevas de Java, saludos
................
¿Qué debió haber hecho Argentina para ganar la Guerra de Malvinas? http://ar.answers.yahoo.com/question/index;_ylt=Ai...
················