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); } } }
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); } }