예제 #1
0
        public void DefinirTransporte(string transporte)
        {
            switch (transporte)
            {
            case "A pie":
                Transporte = new Peaton();
                break;

            case "En auto":
                Transporte = new Auto();
                break;

            case "En bici":
                Transporte = new Bici();
                break;

            case "En colectivo":
                Transporte = new Colectivo();
                break;

            case "En avión":
                Transporte = new Avion();
                break;
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            string      cNombre = string.Empty, cExtension = string.Empty;
            IEstrategia estrategia = null;

            Console.WriteLine("Ingrese el nombre del archivo");
            cNombre = Console.ReadLine();
            Console.WriteLine("Ingrese la extensión del archivo");
            cExtension = Console.ReadLine();

            switch (cExtension.ToUpper())
            {
            case "BMP":
                estrategia = new ConcretarBMPServicio();
                break;

            case "JPGE":
                estrategia = new ConcretarJPGEServicio();
                break;

            case "PNG":
                estrategia = new ConcretarPNGServicio();
                break;
            }

            ServicioConcreto srvConcreto = new ServicioConcreto(estrategia);

            srvConcreto.generar(cNombre);

            Console.ReadKey();
        }
예제 #3
0
 // crea un personaje
 public Personaje(Casilla posicion, int resistencia, int velocidad)
     : base(posicion)
 {
     this.resistencia = resistencia;
     this.velocidad = velocidad;
     this.porcentajeDeRetardo = PORCENTAJE_DE_RETARDO;
     this.explotoLaBombaLanzada = true;
     this.estrategiaDeLanzamiento = null;
 }
예제 #4
0
 public Robo(string id, IVisao <Img, VtoERobo, PlaceToDraw> visao, IEstrategia <VtoERobo, EtoCRobo, VtoEBola, VtoECampo> estrategia, IComunicacao <EtoCRobo> comunicacao)
 {
     this.id          = id;
     infoEstrat       = default(VtoERobo);
     infoExped        = default(EtoCRobo);
     this.visao       = visao;
     this.estrategia  = estrategia;
     this.comunicacao = comunicacao;
 }
예제 #5
0
        public void cargar_barcos(int jugador)
        {
            int   _barcos   = 1;
            int   _longitud = 0;
            Flota _flotaCargada;

            if (jugador == 1)
            {
                flotas_estrategia1 = new List <Flota>();
                tablero1           = new int[64, 64];
            }
            else
            {
                flotas_estrategia2 = new List <Flota>();
                tablero2           = new int[64, 64];
            }
            while (_barcos <= cant_barcosxtipo)
            {
                _longitud = long_max_barco;
                while (_longitud >= long_min_barco)
                {
                    List <Coordenada> coordenadas = posicionarFlota(_longitud, jugador);
                    string            nombreflota = obtenerNombre(_longitud);
                    Color             colorflota  = obtenerColor(_longitud);
                    _flotaCargada = new Flota(_longitud, nombreflota, coordenadas, colorflota);
                    if (jugador == 1)
                    {
                        flotas_estrategia1.Add(_flotaCargada);
                    }
                    else
                    {
                        flotas_estrategia2.Add(_flotaCargada);
                    }
                    _longitud--;
                }
                _barcos++;
            }
            if (jugador == 1)
            {
                generadorEstrategia1 = new CongruencialMixto(seed, a1, c1, m1);
                //generadorEstrategia1 = new AleatorioSistema();
                distrEstrategias = new DistribucionUniforme(0, 63, generadorEstrategia1);
                //distrEstrategias = new DistribucionNormal(32, 16, generadorEstrategia1);
                //distrEstrategias = new DistribucionExponencialNegativa((0.03125), generadorEstrategia1);
                estrategia_j1 = new EstrategiaEquipo1(flotas_estrategia1, distrEstrategias);
            }
            else
            {
                generadorEstrategia2 = new CongruencialMixto(seed, a2, c2, m2);
                //generadorEstrategia2 = new AleatorioSistema();
                distrEstrategias = new DistribucionUniforme(0, 63, generadorEstrategia2);
                //distrEstrategias = new DistribucionNormal(32, 16, generadorEstrategia2);
                //distrEstrategias = new DistribucionExponencialNegativa((0.03125), generadorEstrategia2);
                estrategia_j2 = new EstrategiaEquipo2(flotas_estrategia2, distrEstrategias);
            }
        }
예제 #6
0
        public void Main()
        {
            string      cTexto = string.Empty, cFormato = string.Empty, cMensaje = string.Empty;
            string      cMensajeInterno = "Se ha guardado la imagen {0}.{1}";
            IEstrategia IEstrategia     = null;
            Contexto    contexto        = new Contexto();

            Console.WriteLine("Formatos\n1-BMP\n2-JPG\n3-JPG");

            while (cTexto != "x")
            {
                cMensaje = "";
                Console.WriteLine("Ingrese el nombre de la Imagen");
                cTexto = Console.ReadLine();
                Console.WriteLine("Seleccione el Formato a Generar");
                cFormato = Console.ReadLine();

                switch (cFormato)
                {
                case "1":
                {
                    IEstrategia = new ImagenBMP(cMensajeInterno);
                }
                break;

                case "2":
                {
                    IEstrategia = new ImagenJPG(cMensajeInterno);
                }
                break;

                case "3":
                {
                    IEstrategia = new ImagenPNG(cMensajeInterno);
                }
                break;

                default:
                    cMensaje = "Error";
                    break;
                }

                if (string.IsNullOrEmpty(cMensaje))
                {
                    contexto.AsignarEstrategia(IEstrategia);
                    cMensaje = contexto.RealizarAccion(cTexto);
                }
                Console.WriteLine(cMensaje);
                Console.WriteLine("ingrese 'x' para salir o cualquier otra tecla para continuar");
                cTexto = Console.ReadLine();
            }
        }
예제 #7
0
        //METODOS

        public void actualizar(Observado o)
        {
            ILugar lugar = (ILugar)o;

            if (lugar is Casa)
            {
                estrategia = new EstrategiaEscalera();
            }
            if (lugar is Plaza)
            {
                estrategia = new EstrategiaEspiral();
            }
            this.apagarIncendio(lugar, lugar.Calle);
        }
예제 #8
0
 public void defineCustomRobo(
     string id,
     IVisao <Bitmap, InfoVtoERobo, PictureBox> visao,
     IEstrategia <InfoVtoERobo, InfoEtoCRobo, InfoVtoEBola, InfoVtoECampo> estrategia,
     IComunicacao <InfoEtoCRobo> comunicacao,
     ref PictureBox placeToDraw)
 {
     //visao.defineLugarDesenho(ref placeToDraw);
     controle.defineRobo(id, visao, estrategia, comunicacao);
     if (placeToDraw != null)
     {
         controle.defineLugarDesenhoRobo(id, ref placeToDraw);
     }
 }
예제 #9
0
        /// <summary>
        /// Cria um novo robô/Atualiza suas propriedades, também chama o método de conexão para estabelece-la
        /// </summary>
        /// <param name="id">Identificador único do robô</param>
        /// <param name="visao">Classe que processa Imagem</param>
        /// <param name="estrategia">Processa Estratégia</param>
        /// <param name="comunicacao">Comunicação sem fio</param>
        public void defineRobo(
            string id,
            IVisao <Img, VtoERobo, PlaceToDraw> visao,
            IEstrategia <VtoERobo, EtoCRobo, VtoEBola, VtoECampo> estrategia,
            IComunicacao <EtoCRobo> comunicacao)
        {
            foreach (var x in robos)
            {
                if (x.Value.Visao == visao || x.Value.Comunicacao == comunicacao || x.Value.Estrategia == estrategia)
                {
                    throw new Exception("Componentes de Visão, Estratégia e Expedidor devem ser Instâncias Distintas");
                }
            }
            var robo = new Robo <Img, VtoERobo, EtoCRobo, VtoEBola, VtoECampo, PlaceToDraw>(id, visao, estrategia, comunicacao);

            lock (robos)
                if (robos.ContainsKey(id))
                {
                    if (visao != null)
                    {
                        robos[id].Visao = visao;
                    }
                    if (estrategia != null)
                    {
                        robos[id].Estrategia = estrategia;
                    }
                    if (comunicacao != null)
                    {
                        robos[id].Comunicacao.desconectar();
                        robos[id].Comunicacao = comunicacao;
                        robos[id].Comunicacao.conectar();
                    }
                }
                else
                {
                    robos.Add(id, robo);
                    robos[id].Comunicacao.conectar();
                }
        }
 public void SetEstrategia(IEstrategia estrategia)
 {
     this.estrategia = estrategia;
 }
예제 #11
0
 public Contexto(IEstrategia estrategia)
 {
     this.estrategia = estrategia;
 }
예제 #12
0
 public Jugador(string nombre, IEstrategia estrategia)
 {
     Nombre     = nombre;
     Estrategia = estrategia;
     Dinero     = 0;
 }
예제 #13
0
 public Objeto(IEstrategia estategia)
 {
     this.estategia = estategia;
 }
예제 #14
0
 public void AsignarEstrategia(IEstrategia _IEstrategia)
 {
     this.IEstrategia = _IEstrategia;
 }
 public EstrategiaContext(IEstrategia estrategia)
 {
     this.estrategia = estrategia;
 }
예제 #16
0
 public void cambiarEstrategia(IEstrategia estrategia)
 {
     this.estrategia = estrategia;
 }
 public ServicioConcreto(IEstrategia _estrategia)
 {
     this.estrategia = _estrategia;
 }
예제 #18
0
 public Contexto(IEstrategia strategy)
 {
     this.strategy = strategy;
 }
예제 #19
0
 public ProcesadorImagen(IEstrategia estrategia)
 {
     this.estrategia = estrategia;
 }
예제 #20
0
 public void SetEstrategia(IEstrategia estrategia)
 {
     _estrategia = estrategia;
 }
예제 #21
0
 public Jugador(string nombre, IEstrategia Iestrategia)
 {
     Nombre       = nombre;
     _iestrategia = Iestrategia;
 }
예제 #22
0
 public Contexto(IEstrategia _IEstrategia)
 {
     this.IEstrategia = _IEstrategia;
 }
예제 #23
0
 // asigna la IA
 private void Inicializar()
 {
     this.inteligencia = new IAEnemigos(this);
 }
예제 #24
0
 //CONSTRUCTOR
 public Bombero(Manejador sucesor) : base(sucesor)
 {
     this.estrategia = new EstrategiaSecuencial();
 }
예제 #25
0
 // Por lo general, el contexto permite reemplazar un objeto de estrategia en tiempo de ejecución
 public void SetearEstrategia(IEstrategia estrategia)
 {
     this._estrategia = estrategia;
 }