Esempio n. 1
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;
 }
Esempio n. 2
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);
     }
 }
Esempio n. 3
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();
                }
        }
Esempio n. 4
0
 public void definirBola(IVisao <Img, VtoEBola, PlaceToDraw> visaoBola)
 {
     bola.Visao = visaoBola;
 }
Esempio n. 5
0
 public void definirCampo(IVisao <Img, VtoECampo, PlaceToDraw> visaoCampo)
 {
     campo.Visao = visaoCampo;
 }