Beispiel #1
0
 /// <summary>
 /// Verifica que el viajer no se mueva para atrás o a la posición que tiene actualmente
 /// </summary>
 /// <param name="viajero"></param>
 /// <param name="pos"></param>
 /// <returns></returns>
 public bool MovimientoHaciaAtras(Viajero viajero, int pos)
 {
     if (pos <= viajero.GetPosicionActual()[0])
     {
         System.Console.WriteLine("No se puede ir a una posición anterior o igual a la que estás");
         return(true);
     }
     return(false);
 }
Beispiel #2
0
        /// <summary>
        /// Verifica si es el último de los viajeros que es al que le corresponde jugar
        /// </summary>
        /// <returns></returns>
        public Viajero DeQuienEsElTurno()
        {
            if (viajeros.Count > 0)
            {
                Viajero viajeroEnMinimaPos = viajeros[0];

                for (int i = 1; i < viajeros.Count; i++)
                {
                    if (viajeros[i].GetPosicionActual()[0] < viajeroEnMinimaPos.GetPosicionActual()[0])
                    {
                        viajeroEnMinimaPos = viajeros[i];
                    }
                    else if (viajeros[i].GetPosicionActual()[0] == viajeroEnMinimaPos.GetPosicionActual()[0])
                    {
                        if (viajeros[i].GetPosicionActual()[1] < viajeroEnMinimaPos.GetPosicionActual()[1])
                        {
                            viajeroEnMinimaPos = viajeros[i];
                        }
                    }
                }
                return(viajeroEnMinimaPos);
            }
            return(null);
        }
Beispiel #3
0
 /// <summary>
 /// Si el viajero no terminó el juego, si es su turno y el movimiento es válido realiza el movimiento
 /// </summary>
 /// <param name="viajero"></param>
 /// <param name="posicion"></param>
 public void MoverViajero(Viajero viajero, int posicion)
 {
     if (viajero.EnJuego == false)
     {
         System.Console.WriteLine("Ya terminaste");
         throw new MiExcepcion("Ya terminaste el juego no te puedes mover");
     }
     else if (DeQuienEsElTurno().Id != viajero.Id)
     {
         System.Console.WriteLine("No es tu turno");
         throw new MiExcepcion("No es tu turno, no te puedes mover");
     }
     else if (MovimientoValido(viajero, posicion))
     {
         camino[viajero.GetPosicionActual()[0]].Disponibilidad++;
         viajero.SetPosicionActual(posicion, camino[posicion].Disponibilidad);
         camino[posicion].Disponibilidad -= 1;
         if (posicion == camino.Count - 1)
         {
             viajero.EnJuego = false;
         }
         camino[posicion].Accion(viajero);
     }
 }