Manera de implementar lo que siga en java....

Poisonous

Hola;
Para una práctica de ing del conocimiento e inteligencia artificial tenemos que hacer una interfaz grafica cuyos requisitos son:

que se muestre una matriz
que se puedan introducir las dimensiones de la matriz.

Pues bien, ¿cual seria la mejor manera de implementar el pintado la matriz teniendo en cuenta que luego vamos a dibujar helicopteros y bidones en las casillas de dicha matriz?

Se me ocurre:

Dibujar líneas formando una cuadricula (no me parece muy acertado, luego para estar mirando que coordenadas corresponden a cada cuadro puede ser farragoso)

Que cada casilla sea una imagen.

Que cada casilla sea un rectángulo

No se, necesito ideas, sobretodo teniendo en cuanto eso, que después tengo que trabajar tanto la parte lógica de la matriz (explorarla mediante búsuqedas, heurísticas, etc) y que también tengo que ir dibujando 1 poco lo que está sucediendo (pintar el helicoptero, por donde a ido, que caminos esta tentando, etc) de manera que quede algo mas o menos limpio.

Pues eso, necesito ideas!

Gracias

Dod-Evers

Por un lado separarás la lógica de la representación.

La lógica, pues vas a morir a un ObjetoDeMiMatriz[][] matriz = new ObjetoDeMiMatriz[x][y];

Y ya a jugar.

Para la representación, tendrás que jugar con los clicks del ratón y el tamaño de la pantalla a representar. Lo que viene siendo el canvas.

Con la posición del ratón, tendrás que hacerte una/s funciones para dependiendo del x/y sepas qué coordenada xy de la matriz te están dando.

No sé si tendráis pensado esto... pero mantennos/me al tanto que tiene miga la cosa...

Lo más fácil, para mí de pintar eran líneas...

PD: Qué vas a querer implementar un A, un A*?...

JuAn4k4

#2 ¿Que pinta el raton? O no lo entendi bien yo o no dice nada de raton, solo las dimensiones de la matriz y pintar una matriz de tamaño mxn arbitrario en principio.

#1 ¿ Bidones, helicopteros ? ¿ Para que es lo que haces ?

Poisonous

No, el ratón en principio no se usa, salvo para añadir alguna pijada extraoficial

He estado mirando y el JTable tiene buena pinta. Aqui un ejemplo ejemplo

También otra opción puede ser que cada casilla sea un JPanel (aqui hay un ejemplo de hundir la flota ejemplo ).

Respecto a lo que hay que hacer es que el helicoptero transporte bidones radioactivos minimizando el camino utilizado (se supone que tiene un gps para saber donde está y a donde ir). Lo que se pide, en principio, es implementar cualquier estrategia de control que use heurísticas y el opcional es implementar un A*

smintcs

un panel con grid, recibes las filas y columnas y haces pues f*c etiquetas

que te pasan 3*4 pues metes 12 etiquetas en tu panel, él mismo se encargara de distribuir el espacio

tienes una imagen, color, texto o lo que quieras para situacion ya sea helicoptero o lo que sea, lo unico que tienes que hacer es pedir la matriz ya resuelta y una vez que la tengas poner tus etiquetas como debas

te haces un bucle que te vaya por las etiquetas y dependiendo del valor que tenga la matriz que calculas en la clase de lógica pones un dibujo u otro

[1][0]
[0][0]

if(casillero[j] == HELICOPTERO)
etiqueta[x].setImage(helicoptero)

else if(casillero[j] == BARCO)
etiqueta[y].setImage(barco)

no he visto nada de eso de inteligencia artificial ni parecido, pero para hacer un ajedrez o algo así esto mismo sirve, seria como tener casillas y sabiendo lo que va en cada una pintarselo, el unico problema sería si fuera en plan un juego en tiempo real, pero siendo calcular una vez y luego pintar esto te deberia servir

Dod-Evers

#3 para poner la posición del helicóptero y los bidones... xD

Debe ser como el laberinto que tanto nos suena :P

Usuarios habituales

  • Dod-Evers
  • smintcs
  • Poisonous
  • JuAn4k4