// utskrift av information om rummet // nuvarande position ligger lagrat på första raden i rumlistan static private void VisaRumInfo(cMuseum karta, cTavelLista lista) { // visa nuvarande position Console.WriteLine(" "); Console.WriteLine("Välkommen till " + karta.RumLista[0].Beskrivning); // lista alla tavlor som finns i rummet // vissa rum saknar tavlor if (lista.TavelLista.Count > 0) { Console.WriteLine("Här finns följande tavlor: "); Console.WriteLine(""); for (int ind = 0; ind < lista.TavelLista.Count; ind++) { Console.Write(lista.TavelLista[ind].Namn); Console.Write(", "); Console.Write(lista.TavelLista[ind].Beskrivning); Console.Write(", Fotograf: "); Console.WriteLine(lista.TavelLista[ind].Upphov); } } // lista på möjliga val Console.WriteLine(""); Console.WriteLine("Gå vidare till: "); for (int ind = 1; ind < karta.RumLista.Count; ind++) { Console.Write("val " + ind + ": "); Console.WriteLine(karta.RumLista[ind].Beskrivning); } }
static void Main(string[] args) { // börjar med att visa information om programmet VisaProgramInfo(); // används för att testa utgångsvillkor bool fortsatt = true; // start i entre-rummet string nyttRum = "1"; // användaren väljer museum // enbart val '1' och '2' är tillåtna string museum = HemtaMuseum(); if ((museum != "1") && (museum != "2")) { fortsatt = false; } // loop - vandra runt i rummen // tills utgången valts (rumId "0") while (fortsatt) { // visa nytt rum på blank skärm Console.Clear(); // läs in info om valt rum och intilliggande rum // valt museum skickas med för att hitta rätt planritning cMuseum karta = new cMuseum(museum, nyttRum); // läs in info om ev tavlor i valt rum cTavelLista tavelLista = new cTavelLista(nyttRum); // visa info om valt rum och ev tavlor placerade i rummet VisaRumInfo(karta, tavelLista); // val av nytt rum, "0" = avslut // continue = hoppar över resten av detta loop-varv string nyttVal = HemtaNyttVal(); if (nyttVal == "0") { nyttRum = nyttVal; fortsatt = false; continue; } // nytt val kontrolleras // om ej giltigt, stanna kvar i samma rum // continue = hoppar över resten av detta loop-varv // nuvarande rum är lagrat först i listan bool giltigtVal = karta.KontrolleraVal(nyttVal); if (!giltigtVal) { nyttRum = karta.RumLista[0].RumId; continue; } // hämta rumId för vald rad nyttRum = karta.GetNextRoom(nyttVal); } }