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 Carro(string id, Caminho c) { Id = id; Caminho = c; Posicao = 0; }