static void Main(string[] args) { int avvisadeBåtar; int kPlats; Skärm.Titel(); // skriver ut titeln på console for (int day = 1; day < 100; day++) { avvisadeBåtar = 0; Register.skrivaAvvisadeBåtar(0); Skärm.skrivaDay(day); // skriver ut day inkommande och utgående båtar Skärm.cancelday(); do { } while (Register.båtarnaLämnarHamnen(day)); //Alla båtar som behöver åka tas bort for (int i = 0; i < 5; i++) // det finns 5 båtar som kommer in varje dag { Båt b = new Båt(day); // structorn anråpas // skapar objekt båt. ( b är en slumpmässig båt ) kPlats = Kaj.insertBåt(b.hamnplats); if (kPlats >= 0) //båten har placerats i kajen { b.kajPlats = kPlats; Register.HamnRegister.Add(b); Skärm.skrivaIngående($"{b.typ} [{b.båtId}] -> plats {b.kajPlats}"); // dessa är båtarna som kom till hamnen Register.SkrivutHamnaregister(day); } else { avvisadeBåtar++; Register.skrivaAvvisadeBåtar(avvisadeBåtar); Console.ForegroundColor = ConsoleColor.Red; Skärm.skrivaIngående($"{b.typ} har ingen plats på kajen"); Console.Beep(); Console.ForegroundColor = ConsoleColor.White; } if (Skärm.pausa(500)) { break; //Thread.Sleep(1000); } } if (Skärm.pausa(1000)) { break; //Thread.Sleep(1800); // ny dag } } Disk.sparaRegisterIfilen(Register.HamnRegister); //spara Register på disken //!! Register.HamnRegister = Disk.läsRegisterFrånFil(); //läser registret från disken }
public static bool båtarnaLämnarHamnen(int day) { // metoden letar efter en båt som måste ut, tar bort den från kaj och registret foreach (var b in HamnRegister) { if ((day - b.aDag) == b.dagarIhamnen) { Kaj.RemoveBåt(b.kajPlats, b.antalPlatser); HamnRegister.Remove(b); //Båten tas bort från hamnaregistret Skärm.skrivautgående($"{b.typ} [{b.båtId}] plats {b.kajPlats} -> "); SkrivutHamnaregister(day); //hamnaregistret skrivs om utan denna båt Skärm.pausa(300); return(true); //"true" för att indikera att andra båtar kan åka ut } } return(false);//"false" eftersom det inte finns några båtar som måste ut }
static void Main(string[] args) { //List<Båt> HamnRegister = new List<Båt>(); // registret av hamnen i vilken alla inkommande båtar läggs in. ( i början är tom) int kPlats; Kaj.initKaj(); // skriver ut "." dvs att befriar alla platser av kajen Skärm.Titel(); // skriver ut titeln på console for (int day = 1; day < 30; day++) { Skärm.skrivaDay(day); // skriver ut day inkommande och utgående båtar Skärm.cancelday(); foreach (var b in Register.HamnRegister) //Båtarna lämnar hamnen { if ((day - b.aDag) == b.dagarIhamnen) // Båtar lämnar hamnen med följande villkoret { Kaj.RemoveBåt(b.kajPlats, b.antalPlatser); Skärm.skrivautgående(b.message1()); Register.SkrivutHamnaregister(day); Thread.Sleep(900); } } for (int i = 0; i < 5; i++) // det finns 5 båtar som kommer in varje dag { Båt b = new Båt(day); // structorn anråpas // skapar objekt båt. ( b är en slumpmässig båt ) kPlats = Kaj.insertBåt(b.hamnplats); if (kPlats >= 0) //båten har placerats i kajen { b.kajPlats = kPlats; Register.HamnRegister.Add(b); Skärm.skrivaIngående(b.message1()); // dessa är båtarna som kom till hamnen //Kaj.stampa(); Register.SkrivutHamnaregister(day); } else { Skärm.skrivaIngående($"{b.typ} har ingen plats på kajen"); Console.Beep(); } if (Skärm.pausa(500)) { break; } //Thread.Sleep(1000); } Register.flotta(day); Register.statistik(day); // Register.statistik(dagensRegister); if (Skärm.pausa(1000)) { break; } //Thread.Sleep(1800); // ny dag } }