public void PosiblesDirs2() { //Arrange Tablero tab = new Tablero(3, 3); tab.setPersonaje(1, 1, 1, 0, 1); tab.cambiaCasilla(0, 1, Tablero.Casilla.Muro); ListaPares l = new ListaPares(); //Creamos la lista con las direcciones que tendrian que aparecer ListaPares newL = new ListaPares(); //Añadimos las direcciones que tendria que llevar newL.insertaFin(1, 0); newL.insertaFin(0, 1); //Aqui almacenaremos las direcciones int dX, dY, ndX, ndY; int cont = 0; //Act tab.posiblesDirs(1, out l, out cont); //Assert //Primero comprobamos que solo haya tres direcciones Assert.AreEqual(2, cont, "Error, hay mas/menos direcciones"); //Hay que comprobar que estan añadidas las direcciones for (int i = 0; i < cont; i++) { l.nEsimo(i, out dX, out dY); newL.nEsimo(i, out ndX, out ndY); Assert.AreEqual(dX, ndX, "Error,la direccion X " + i + " no coincide"); Assert.AreEqual(dY, ndY, "Error,la direccion Y " + i + " no coincide"); } }
public void posiblesDirs(int fant, out ListaPares l, out int cont) { l = new ListaPares(); cont = 4; l.insertaFin(1, 0); l.insertaFin(0, 1); l.insertaFin(-1, 0); l.insertaFin(0, -1); l.iniciaRecorrido(); int dx, dy; int nx, ny; while (l.dame_actual_y_avanza(out dx, out dy)) { if (!siguiente(pers[fant].posX, pers[fant].posY, dx, dy, out nx, out ny)) { l.eliminaElto(dx, dy); cont--; } } if (cont > 1) { if (l.eliminaElto(-pers[fant].dirX, -pers[fant].dirY)) { cont--; } } }