Example #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);
                }
            }
        }
Example #2
0
        public Cruzamento(Rua r1, Rua r2, Rua r3 = null, Rua r4 = null)
        {
            Ruas = new List <Rua>();

            Ruas.Add(r1);
            Ruas.Add(r2);

            if (r3 != null)
            {
                Ruas.Add(r3);
            }

            if (r4 != null)
            {
                Ruas.Add(r4);
            }
        }