Autor Beitrag
Hexxer_Main
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 10.03.20 14:53 
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:
ausblenden volle Höhe 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] { 1357 };

            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)
                {
                //Regeln
               
                    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 = (" | | | | | | |");
            //Reihen:
            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());

            //Auswahl Beginner
            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(12);
                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)");
            //Zufälliger Spieler
           
            //Sp1 = //Convert.ToInt32(Sp1);
            //Sp2 = //Convert.ToInt32(Sp2);
           
            //Beginn Spiel

            if (Console.ReadLine() == Sp1)
                Console.WriteLine(Sp1 + " darf beginnen.");
            else if (Console.ReadLine() != Sp1)
                Console.WriteLine(Sp2 + " darf beginnen.");
            
           Start:
            //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 user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Di 10.03.2020 um 14:06
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 10.03.20 15:10 
Hallo und :welcome:,

was ist denn deine konkrete Frage?
Hexxer_Main Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 11.03.20 10:28 
Ich möchte wissen, wie ihr die Mechanik mit dem entziehen von streichhölzern regeln würdet.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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! gibt es eine Umsetzung dazu (aber auch diese ist verbesserungswürdig).
Hexxer_Main Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 11.03.20 11:03 
Dann bedanke ich mich schonmal!