Ver Mensaje Individual
  #78 (permalink)  
Antiguo 28/12/2013, 14:36
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Propuesta para desafíos javascript 2014

Correcto, tienes razon, hay que preguntar por 3, escribi sin pensar (y sin probarlo)

en la esquina superior derecha fallaba si arranca ahi, si arranca en esa posicion se hace un nudo y termina, no obstante analizandolo mejor, el nudo no solo se hace en esa esquina sino en cualquier caso similar. por lo tanto la condicion general y definitiva seria:

Código Javascript:
Ver original
  1. // Casos especiales.
  2.         if  (
  3.                 (
  4.                     // Esta en la primer columna.
  5.                     (this.mapa[this.jugador[0]][this.jugador[1]-1] == 1)
  6.                     ||
  7.                     // Esta en un escalon.
  8.                     (
  9.                         (((this.jugador[0]-2) >= 0 ? this.mapa[this.jugador[0]-2][this.jugador[1]] : 3) > 0)
  10.                         && (((this.jugador[0]+2) < this.mapa[0].length ? this.mapa[this.jugador[0]-1][this.jugador[1]+1] : 3) > 0)
  11.                     )
  12.                     ||
  13.                     // Tiene que dar un rodeo.
  14.                     (
  15.                         (((this.jugador[0]-2) >= 0 ? this.mapa[this.jugador[0]-2][this.jugador[1]] : 3) > 0)
  16.                         && (((this.jugador[0]+2) < this.mapa[0].length ? this.mapa[this.jugador[0]-1][this.jugador[1]+1] : 3) > 0)
  17.                         && (this.mapa[this.jugador[0]+1][this.jugador[1]+1] == 0)
  18.                     )
  19.                 )          
  20.                 // Y esta libre.
  21.                 && (this.mapa[this.jugador[0]-1][this.jugador[1]] == 0)
  22.             )
  23.             return DIRECCION.arriba;
  24.         else
  25.         {
  26. ...

EDITO: eh aqui el fiddle con un random, hasta ahora nunca fallo: http://jsfiddle.net/ProyectoNSD/dssvt/2/
EDITO 2: y he aqui 3 ia compitiendo juntas: http://jsfiddle.net/ProyectoNSD/dssvt/3/
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 28/12/2013 a las 14:48