コード例 #1
0
 //Methode zum Entfernen eines Stammesmitglieds
 public void RemoveBewohner(Stamm stamm, Lebewesen Bewohner)
 {
     //Entfernen eines Eintrags aus der Mitgliederliste
     stamm.Mitglieder.Remove(Bewohner);
     //Updated den Machtfaktor des Stamms
     SummeDesMachtfaktors(stamm);
 }
コード例 #2
0
 //Methode zum Hinzufügen von Stammesmitgliedern
 public void AddBewohner(Stamm stamm, Lebewesen Bewohner)
 {
     //Fügt der Mitgliederliste einen Eintrag hinzu
     stamm.Mitglieder.Add(Bewohner);
     //Updated den Machtfaktor des Stamms
     SummeDesMachtfaktors(stamm);
 }
コード例 #3
0
        //Methode zur Berechnung des StammesMachtfaktors.
        public static int SummeDesMachtfaktors(Stamm stamm)
        {
            //Wir setzen einen Integer auf Null
            int machtFaktor = 0;

            //Und für jeden Zwerg (oder Elb - Man könnte hier statt zwerg aber auch Joghurt schreiben - ich kommentiere jetzt aber nur noch.) addieren wir dessen Machtfaktor.
            foreach (var zwerg in stamm.Mitglieder)
            {
                machtFaktor += zwerg.Machtfaktor;
            }
            //und geben am Schluss die Summe der Machtfaktoren aller Stammesmitglieder aus.
            return(machtFaktor);
        }
コード例 #4
0
 //Alle Staemme anzeigen
 static void ShowAllClans()
 {
     Console.WriteLine("###      1: Staemme anzeigen         ###");
     Console.WriteLine("Stammname        Stammesgründung     Stammesfuehrer");
     //Schleife für alle Staemme
     foreach (var stamm in AlleClans)
     {
         //Berechnung des Machtfaktors des Clans
         int MachtDesClans = Stamm.SummeDesMachtfaktors(stamm);
         Console.Write("" + stamm.Name + "(" + MachtDesClans + ")     " + stamm.GruendungNdK + "ndK          ");
         //Wenn wir den Stammesfuehrer nicht kennen wollen wir nicht einfach einen leeren Eintrag anzeigen, sondern etwas ausgeben.
         if (!string.IsNullOrEmpty(stamm.Stammeshaupt))
         {
             Console.Write("" + stamm.Stammeshaupt + ", seit " + stamm.StammeshauptSeit + " Jahren");
         }
         else
         {
             Console.Write("unbekannter Stammesfuehrer");
         }
         Console.WriteLine("\n Besteuerung: " + (MachtDesClans * SteuerBasisSatz));
     }
     //Schauen wir mal, ob der Benutzer fertig ist, oder noch etwas erledigen möchte.
     ResetProgram();
 }
コード例 #5
0
        //Einen Stamm editieren
        static void EditAClan()
        {
            Console.WriteLine("###      2: Staemme editieren        ###");
            Console.WriteLine("Welchen Stamm möchten Sie editieren?");
            int countOfClans = 0;
            int curremtstamm = 0;

            foreach (var stamm in AlleClans)
            {
                countOfClans += 1;
                //Berechnung des Machtfaktors des Clans
                int MachtDesClans = Stamm.SummeDesMachtfaktors(stamm);
                Console.Write("" + countOfClans + " :  " + stamm.Name + "(" + MachtDesClans + ")\n");
                //Wenn wir den Stammesfuehrer nicht kennen wollen wir nicht einfach einen leeren Eintrag anzeigen, sondern etwas ausgeben.
            }
            try
            {
                //Auswahl des Nutzers übernehmen
                curremtstamm = (int.Parse(Console.ReadLine()) - 1);
            }
            catch
            {
                //Bei Problem dem Nutzer eine zweite Eingabe zur Verfügung stellen
                Console.WriteLine("Bitte geben Sie eine gültige Stammeszahl an ('1' - '" + AlleClans.Count() + "')!");
                int stamm = int.Parse(Console.ReadLine());
            }
            //Namensänderung des Stammes
            Console.WriteLine("Namensänderung: " + AlleClans[curremtstamm].Name + " - leer lassen um nicht zu verändern.");
            string newName = Console.ReadLine();

            if (newName.Length > 0)
            {
                //Wenn der Name geändert wird, brauchen die Bewohnere eine Benachrichtigung, sonst wird das nächste Stammestreffen peinlich für sie.
                foreach (var bewohner in AlleBewohner)
                {
                    if (bewohner.Stamm.Equals(AlleClans[curremtstamm].Name))
                    {
                        bewohner.Stamm = newName;
                    }
                }
                //Namen des Stamms ändern
                AlleClans[curremtstamm].Name = newName;
            }

            //Gründungszeit ändern
            Console.WriteLine("Gründung: " + AlleClans[curremtstamm].GruendungNdK + " - leer lassen um nicht zu verändern.");
            string newFounding = Console.ReadLine();

            if (!string.IsNullOrEmpty(newFounding))
            {
                if (int.Parse(newFounding) > 0)
                {
                    AlleClans[curremtstamm].GruendungNdK = int.Parse(newFounding);
                }
            }


            //Bewohner in Charge ändern
            Console.WriteLine("Führungsänderung (Bewohner): " + AlleClans[curremtstamm].Stammeshaupt + " - leer lassen um nicht zu verändern.");
            string newLeader       = Console.ReadLine();
            bool   fuehrerGefunden = false;

            if (newLeader.Length > 0)
            {
                foreach (var bewohner in AlleBewohner)
                {
                    if (AlleClans[curremtstamm].Mitglieder.Contains(bewohner))
                    {
                        AlleClans[curremtstamm].Stammeshaupt = newLeader;
                        fuehrerGefunden = true;
                    }
                    //Wenn kein Bewohner passt, gibt es diesen (noch) nicht
                }
                if (!fuehrerGefunden)
                {
                    Console.WriteLine("Dieser Bewohner ist nicht einmal im Stamm - netter Versuch!");
                }
            }

            //Zeit der Machtübernahme ändern, falls Führung vorhanden - ansonsten übersprungen
            if (AlleClans[curremtstamm].Stammeshaupt != "")
            {
                Console.WriteLine("Führungsänderung (Zeit in Jahren): " + AlleClans[curremtstamm].StammeshauptSeit + " - leer lassen um nicht zu verändern.");
                string newLeaderSince = Console.ReadLine();
                try
                {
                    if (!string.IsNullOrEmpty(newLeaderSince))
                    {
                        if (int.Parse(newLeaderSince) > 0)
                        {
                            AlleClans[curremtstamm].StammeshauptSeit = int.Parse(newLeaderSince);
                        }
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Ungültige Eingabe");
                    throw;
                }
            }
            ResetProgram();
        }