using System; class Mensch { string name; bool _wohlfuehlen; bool _gesund; bool _wohlfuehlen_definiert; bool _gesund_definiert; int zustandNr = 0; public Mensch(string neuerName) { name = neuerName; } public bool wohlfuehlen { get { return _wohlfuehlen && _wohlfuehlen_definiert; } set { _wohlfuehlen = value; _wohlfuehlen_definiert = true; if (!value) gesund = false; } } public bool gesund { get { return _gesund && _gesund_definiert; } set { _gesund = value; _gesund_definiert = true; if (value) wohlfuehlen = true; } } public string Evaluiere(bool wert, bool definiert) { if (!definiert) return "UNDEFINIERT"; return wert ? "JA" : "NEIN"; } public void ZeigeStatus() { zustandNr++; Console.WriteLine("Zustand " + zustandNr + ":"); Console.WriteLine("Der Mensch namens " + name + " fühlt sich wohl: " + Evaluiere(_wohlfuehlen, _wohlfuehlen_definiert)); Console.WriteLine("Der Mensch namens " + name + " ist gesund: " + Evaluiere(_gesund, _gesund_definiert)); } public void Handle() { if (gesund) goto Arbeiten; else goto Arzt; Arbeiten: Console.WriteLine("Der Mensch namens " + name + " geht arbeiten."); return; Arzt: Console.WriteLine("Der Mensch namens " + name + " geht zum Arzt."); Random rnd = new Random(); if (((int)rnd.Next(0, 10)) % 2 == 0) { Console.WriteLine("Der Arzt macht den Menschen namens " + name + " wieder gesund."); gesund = true; } else { Console.WriteLine("Der Arzt ist ratlos..."); } return; } public static void Main() { Mensch Clausi = new Mensch("Claus Volko"); Clausi.wohlfuehlen = true; Clausi.ZeigeStatus(); Clausi.wohlfuehlen = false; Clausi.ZeigeStatus(); do { Clausi.Handle(); } while (!Clausi.gesund); Clausi.Handle(); Clausi.ZeigeStatus(); Console.ReadLine(); } }