Вы находитесь на странице: 1из 9

Anlisis y diseo de software

dit
UPM

Pac-Man /faq
Jos A. Maas http://www.dit.upm.es/~pepe/doc/adsw/index.html
21.2.2014

Hay que ajustarse al javadoc?


Se ha publicado un javadoc de las clases a implementar
http://www.dit.upm.es/~pepe/doc/adsw/lab1/javadoc/index.html

El alumno puede tomarlo a ttulo de sugerencia


puede cambiar las clases puede cambiar los campos de las clases puede cambiar los mtodos
mtodos privados: con total libertad mtodos pblicos: con cuidado

Si desea cambiar GUI.java, hable antes con el profesor

pacman

Descarga de la GUI
La clase java
http://www.dit.upm.es/~pepe/doc/adsw/lab1/GUI.java

proporciona una interfaz grfica para consola tipo PC antes de cambiarla, hable con su profesor
Normalmente la GUI se arranca desde un programa principal como el que se muestra a continuacin; pero el alumno es libre de cambiarlo
public class Juego { public static final int N = 15; public static void main(String[] args) { Terreno terreno = new Terreno(N); terreno.ponParedes(); terreno.setObjetivo(N - 1, N - 1);
Jugador jugador = new Jugador(); terreno.put(0, 0, jugador); GUI gui = new GUI(terreno, jugador); }

pacman

Carga de imgenes
Este mtodo permite cargar una imagen en la carpeta imgs en la carpeta donde est el fichero GUIclass
Image loadImage(String fichero) { String path = "imgs/" + fichero; Class<GUI> root = GUI.class; try { URL url = root.getResource(path); ImageIcon icon = new ImageIcon(url); return icon.getImage(); } catch (Exception e) { System.err.println("no se puede cargar " + root.getPackage().getName() + System.getProperty("file.separator") + path); return null; } }

pacman

Carga de imgenes
A efectos prcticos, conviene poner las imgenes en el directorio
WORKSPACE/pacman/src/es/upm/dit/adsw/pacman/imgs/ WORKSPACE/pacman/bin/es/upm/dit/adsw/pacman/imgs/

sabiendo que eclipse las copiar al compilar al directorio

que es de donde las carga al ejecutar si hay un error, el mensaje en consola indica qu fichero se ha intentado cargar conviene que las imgenes sean ms o menos de unos 100*100 pixeles

pacman

Laberinto
Ms adelante crearemos un laberinto decente; de momento generaremos paredes aleatoriamente

public void ponParedes() { int n = getN();


// borramos las paredes for (int x = 0; x < n; x++) { for (int y = 0; y < n; y++) { Casilla casilla = getCasilla(x, y); casilla.quitaParedes(); } } Direccion[] direcciones = Direccion.values(); Random random = new Random(); for (int i = 0; i < 200; i++) { int x = random.nextInt(n); int y = random.nextInt(n); int d = random.nextInt(direcciones.length); Direccion direccion = direcciones[d]; ponPared(getCasilla(x, y), direccion); }

ntese que puede que no haya ninguna ruta abierta hasta el objetivo

pacman

Cuentas de x e Y
X se cuenta desde 0 en la esquina inferior izquierda de terreno, creciendo hacia la derecha Y se cuenta desde 0 en la esquina inferior izquierda de terreno, creciendo hacia arriba

Y (0, 4) (0, 3) (0, 2) (1, 4) (1, 3) (1, 2) (2, 4) (2, 3) (2, 2) (3, 4) (3, 3) (3, 2) (4, 4) (4, 3) (4, 2)

(0, 1) (0, 0)

(1, 1) (1, 0)

(2, 1) (2, 0)

(3, 1) (3, 0)

(4, 1) (4, 0)

pacman

mtodos de enumerados
De los mtodos de la documentacin

hay que programar manualmente


Direccion opuesta() Direccion valueOf(String) Direccion[] values()

Java genera automticamente los mtodos


pacman

no me acuerdo de
Si no se acuerda de algn aspecto de java, hay varias opciones para documentarse
vademcum http://www.dit.upm.es/~pepe/libros/vademecum/index.html http://www.dit.upm.es/~pepe/libros/vademecum.pdf http://cdn.dzone.com/sites/all/files/refcardz/rc024-corejava_online.pdf http://introcs.cs.princeton.edu/java/11cheatsheet/

pacman

Вам также может понравиться