Ejemplo n.º 1
0
        public void Mover()
        {
            if (Caminho.RuaAtual == null || isIniciado == false)
            {
                return;
            }

            AtualizarPosicao();

            if (Posicao >= Caminho.RuaAtual.Tamanho)
            {
                if (Caminho.RuaAtual.Semaforo.Estado == EstadoSemaforo.Aberto)
                {
                    Rua anterior = Caminho.RuaAtual;

                    if (Caminho.Avancar())
                    {
                        anterior.CarrosNaRua.Remove(this);      // tira o carro da rua anterior
                        Caminho.RuaAtual.CarrosNaRua.Add(this); // coloca o carro na rua atual

                        TrocaDeRua(this, anterior, Caminho.RuaAtual);
                        Posicao = 0;
                    }
                    else
                    {
                        TerminoCaminho(this);
                    }
                }
                else
                {
                    AguardandoSemaforo(this);
                }
            }
        }
Ejemplo n.º 2
0
 public Carro(string id, Caminho c)
 {
     Id      = id;
     Caminho = c;
     Posicao = 0;
 }