Entwickler-Ecke
Sonstiges (.NET) - Nimmspiel Mechanik
Hexxer_Main - Di 10.03.20 14:53
Titel: Nimmspiel Mechanik
Habe mal versucht ein Nimmspiel zu programmieren, wo 2 leute gegen einander spielen, welches in der Konsole recht ansehnlich sein sollte. Ich wollte damit etwas die einstufigen Arrays üben, die ich allerdings immer noch nicht drauf habe. Allerdings währe ein fertiges Spiel ja nicht schlecht :D Brauche eigentlich nur Hilfe bei der Spielmechanik mit hölzer entnehmen. Startmenu, Spielerwahl etc. steht schon alles.
Hab mal den Anfang versucht, nach einigen Fehlschlägen aber aufgegeben. Tipps gerne ran xD. Danke schonmal im voraus.
Ps: Tut mir leid, wenn der Code etwas Komisch aussieht, mache das mehr aus Langeweile.
Hier der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Streichholzspiel { class Program { static void Main(string[] args) { int[] r = new int[4] { 1, 3, 5, 7 };
int Regeln;
Random rnd = new Random();
beginn: Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Willkom men zum Nimmspiel");
do { Console.WriteLine("Möchtet ihr die Regeln hören?"); Console.WriteLine("Ja(1) Nein(2)");
Regeln = Convert.ToInt32(Console.ReadLine()); if ( Regeln == 1) { Console.WriteLine("Die Regeln sind Folgende: \n" + "Die Spieler wählen nacheinander eine der 4 Reihen aus, \n" + "und wie Viele Streichhölzer sie von dort nehmen wollen. \n" + "Der Letzte, der ein Streichholz nimmt, \n" + "also wenn alle Reihen auf 0 stehen, \n" + "ist das spiel für den Letzten Spieler verloren. \n" + "Viel Spaß!");
} else if (Regeln == 2) { Console.WriteLine("Dann weiter ohne die Regeln.");
} else { Console.WriteLine("Gib Bitte (1) oder (2) ein."); }
} while (Regeln > 2);
Console.ReadKey(); Console.Clear(); string p1 = (" | "); string p2 = (" | | "); string p3 = (" | | | "); string p4 = (" | | | | "); string p5 = (" | | | | | "); string p6 = (" | | | | | | "); string p7 = (" | | | | | | |"); string r1 = p1; string r2 = p3; string r3 = p5; string r4 = p7;
Console.WriteLine("Spieler 1: Bitte gebe deinen Namen an!"); string Sp1 = (Console.ReadLine()); Console.WriteLine("Spieler 2: Gebe nun deinen Namen ein!"); string Sp2 = (Console.ReadLine());
Console.WriteLine("Wer will beginnen?"); Console.WriteLine("Soll der Zufall entscheiden?[1] oder entscheidet ihr?[2]"); int En3 = Convert.ToInt32(Console.ReadLine()); if (En3 == 1) { Console.WriteLine("Dann entscheidet der Zufall!"); Console.ReadKey(); System.Threading.Thread.Sleep(100); Console.Clear(); int Zufall = rnd.Next(1, 2); if (Zufall == 1) Console.WriteLine(Sp1 + " darf beginnen."); else if (Zufall == 2) { Console.WriteLine(Sp2 + " darf beginnen."); } goto Start; } else if (En3 != 1) Console.WriteLine("Dann wählt aus, wer starten soll.(Namen Angeben)"); if (Console.ReadLine() == Sp1) Console.WriteLine(Sp1 + " darf beginnen."); else if (Console.ReadLine() != Sp1) Console.WriteLine(Sp2 + " darf beginnen."); Start: Console.WriteLine("Reihe 1: " + r1[0]); Console.WriteLine("Reihe 2: " + r2[1]); Console.WriteLine("Reihe 3: " + r3[2]); Console.WriteLine("Reihe 4: " + r4[3]);
Console.WriteLine("Wähle iene Reihe aus\n" + "z.B. 1 ");
Console.WriteLine("Nun wähle, wie Viele du nehmen willst.\n" + "z.B. 3"); int anzahl = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Nocheinmal Spielen?"); Console.WriteLine("1 für Ja, 2 für Nein"); int pudding = Convert.ToInt32(Console.ReadLine()); if (pudding ==1) { Console.Clear(); goto beginn; } else if (pudding != 1) { Console.Clear(); } } } } |
Moderiert von Th69: C#-Tags hinzugefügt
Moderiert von Th69: Topic aus C# - Die Sprache verschoben am Di 10.03.2020 um 14:06
Th69 - Di 10.03.20 15:10
Hallo und :welcome:,
was ist denn deine konkrete Frage?
Hexxer_Main - Mi 11.03.20 10:28
Ich möchte wissen, wie ihr die Mechanik mit dem entziehen von streichhölzern regeln würdet.
Th69 - Mi 11.03.20 10:57
Du mußt die Anzahl der Hölzer je Reihe speichern (z.B. in einem Array
int[]). Oder soll das Array
r in Zeile 13 dies schon sein? Dann mußt du daraufbasierend sowohl die Ausgabe als auch Eingabe programmieren (und nicht auf den fixen Strings
p1...p7 bzw.
r1...r4)!
Außerdem solltest du folgendes umsetzen:
- Trennung von Spiellogik und UI (Eingabe/Ausgabe)
- Funktionalität in Methoden (bzw. Klassen) auslagern
In
Nimm Spiel Strategie gesucht! [
https://entwickler-ecke.de/viewtopic.php?t=91081] gibt es eine Umsetzung dazu (aber auch diese ist verbesserungswürdig).
Hexxer_Main - Mi 11.03.20 11:03
Dann bedanke ich mich schonmal!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!