static void Verhoer(int st1, int st2, int runde, Verbrechen verbrechen) { IVerbrechensModus strafe; //holt die beiden Strategien aus der Collection. BasisStrategie strategie1 = _strategien[st1]; BasisStrategie strategie2 = _strategien[st2]; //setzt Startwerte int reaktion1 = BasisStrategie.NochNichtVerhoert; int reaktion2 = BasisStrategie.NochNichtVerhoert; int punkte1 = 0, punkte2 = 0; //beide Strategien über den Start informieren (Also es wird die Startmethode aufgerufen) strategie1.Start(runde, (int)verbrechen); strategie2.Start(runde, (int)verbrechen); //Schwere strafe = VerbrechensModus.Set(verbrechen); Console.WriteLine($"\nVerhör zwischen {strategie1.Name()} und {strategie2.Name()} für {runde} Runden mit der Schwere {verbrechen}."); //start for (int i = 0; i < runde; i++) { //beide verhören int aktReaktion1 = strategie1.Verhoer(reaktion2); int aktReaktion2 = strategie2.Verhoer(reaktion1); if (aktReaktion1 == -1 || aktReaktion2 == -1) { Console.WriteLine(@"Fehler, Methode ""Verhoer"" hat Fehlercode -1 zurückgegeben"); //Hier soll das Programm restartet werden } //punkte berechnen strafe.VerhoerSchwerpunkt(aktReaktion1, aktReaktion2, ref punkte1, ref punkte2); //reaktion für den nächsten durchlauf merken reaktion1 = aktReaktion1; reaktion2 = aktReaktion2; } //ausgabe Console.WriteLine($"{strategie1.Name()} hat {punkte1} Punkte erhalten."); Console.WriteLine($"{strategie2.Name()} hat {punkte2} Punkte erhalten."); if (punkte1 < punkte2) { Console.WriteLine($"Somit hat {strategie1.Name()} gewonnen."); } else if (punkte1 == punkte2) { Console.WriteLine($"Somit gibt es ein unentschieden zwischen {strategie1.Name()} und {strategie2.Name()}."); } else { Console.WriteLine($"Somit hat {strategie2.Name()} gewonnen."); } }
static void VerhoerSGS(int st1, string playername, int runde, Verbrechen verbrechen) { IVerbrechensModus strafe; //holt die gegnerische Strategie aus der Collection. BasisStrategie strategie1 = _strategien[st1]; //setzt Startwerte int reaktion1 = BasisStrategie.NochNichtVerhoert; int spielerReaktion = BasisStrategie.NochNichtVerhoert; int punkte1 = 0, punkte2 = 0; //beide Strategien über den Start informieren (Also es wird die Startmethode aufgerufen) //strategie1.Start(runde, schwere); //strategie2.Start(runde, schwere); //Schwere strafe = VerbrechensModus.Set(verbrechen); Console.WriteLine($"Verhör zwischen {playername} und {strategie1.Name()} für {runde} Runden mit der Schwere {verbrechen}."); //start for (int i = 0; i < runde; i++) { int aktReaktion1 = strategie1.Verhoer(spielerReaktion); if (i > 0) { switch (VerwaltungKram.EingabeZahlMinMax($"{strategie1.Name()} hat {(reaktion1 == 1 ? "dich " : string.Empty)}letzte Runde {(reaktion1 == 0 ? "kooperiert" : "verraten")}, wie möchtest du reagieren?\n[0] Kooperieren\n[1] Verraten", 0, 2)) { case 0: spielerReaktion = BasisStrategie.Kooperieren; break; case 1: spielerReaktion = BasisStrategie.Verrat; break; } } else { //Console.WriteLine("Erste Runde, womit moechtest du anfangen?\n[0] Verraten\n[1] Kooperieren"); switch (VerwaltungKram.EingabeZahlMinMax("Erste Runde, womit möchtest du anfangen?\n[0] Kooperieren\n[1] Verraten", 0, 2)) { case 0: spielerReaktion = BasisStrategie.Kooperieren; break; case 1: spielerReaktion = BasisStrategie.Verrat; break; } } int aktSpielerReaktion = spielerReaktion; if (aktReaktion1 == -1 || aktSpielerReaktion == -1) { Console.WriteLine(@"Fehler, Methode ""Verhör"" hat Fehlercode -1 zurückgegeben"); //Hier soll das Programm restartet werden } //punkte berechnen strafe.VerhoerSchwerpunkt(aktReaktion1, aktSpielerReaktion, ref punkte1, ref punkte2); Console.WriteLine($"Der Punktestand beträgt:\n\t{playername} - {punkte2}\n\t{strategie1.Name()} - {punkte1}\nWobei du{(aktSpielerReaktion == 1 ? " ihn" : string.Empty)} {(aktSpielerReaktion == 1 ? "verraten" : "kooperiert")} hast und {(aktReaktion1 == aktSpielerReaktion ? (aktReaktion1 == 1 ? "er dich auch" : "er auch") : aktReaktion1 == 1 ? "er dich verraten hat" : "er kooperiert hat")}.\n"); //reaktion für den nächsten durchlauf merken reaktion1 = aktReaktion1; spielerReaktion = aktSpielerReaktion; } //ausgabe Console.WriteLine($"{strategie1.Name()} hat {punkte1} Punkte erhalten."); Console.WriteLine($"{playername} hat {punkte2} Punkte erhalten."); if (punkte1 < punkte2) { Console.WriteLine($"Somit hat {strategie1.Name()} gewonnen."); } else if (punkte1 == punkte2) { Console.WriteLine($"Somit gibt es ein unentschieden zwischen {strategie1.Name()} und {playername}."); } else { Console.WriteLine($"Somit hat {playername} gewonnen.\n"); } }