public void RimuoviViaggio(Viaggio viaggio) { int tempIndex = viaggio.Indice; //salva temporaneamente la posizione del viaggio da rimuovere ViaggiAttivi.RemoveAt(tempIndex); //rimozione del viaggio dal vettore in posizione tempIndex currentIndex--; //l'indice corrente viene decrementato IndexResetter(tempIndex); //dalla posizione del viaggio rimosso in poi tutti i viaggi decrementano il loro indice }
public void AggiungiViaggio(Edificio mittente, Edificio destinatario, Oggetto[] merce, int nVagoni, int rigMit, int colMit, int rigDes, int colDes) { int durata = calcolaDurataViaggio(rigMit, colMit, rigDes, colDes); //calcola la durata del percorso ViaggiAttivi.Add(new Viaggio(mittente, destinatario, merce, nVagoni, currentIndex, durata)); //inizializzazione nuovo viaggio foreach (Oggetto oggetto in ViaggiAttivi[currentIndex].Merce) //rimuove la merce dal magazzino da cui viene spedita { ViaggiAttivi[currentIndex].Mittente.RimuoviOggetto(oggetto); } currentIndex++; //incrementa l'indice corrente nel vettore dei viaggi attivi }