Laden...

Forenbeiträge von Toren Ingesamt 2 Beiträge

09.01.2022 - 19:06 Uhr

Vielen Dank Lukas für deine Antwort, ich habe nur eine Gewinnlinie erst einmal geschrieben um zu testen ob es überhaupt funktioniert.
Ich habe jetzt einfach ein ein-dimensionales Array angelegt und es funktioniert prima mit der Abfrage, das Problem ist also gelöst 🙂

09.01.2022 - 17:20 Uhr

Guten Tag,

Ich versuche grad C# zu lernen und habe mir vorgenommen ein kleines TicTacToe zu programmieren, aber es klappt mit der Gewinnüberprüfung nicht recht.
Ich habe es auch schon mit char statt string probiert, anderen Ausdrücken für die Gewinnbedingung, also statt if (Spielfeld[0, 0] == "X" && Spielfeld[0, 1] == "X" && Spielfeld[0, 2] == "X") zum Beispiel if (Spielfeld[0, 0] == "X" && Spielfeld[0, 1] == Spielfeld[0, 0] && Spielfeld[0, 2] == Spielfeld[0, 0]) und auch schon ein zweites Array angelegt das ich mit dem Spielarray verglichen habe, es hat nichts funktioniert. Deswegen würde ich mich freuen wenn mir hier jemand eine verständliche Antwort geben könnte, wo denn mein Denkfehler liegt.
Vielen Dank.


namespace Übung
{
    class Program
    {

        static bool Gewinn;
        static int Spalte;
        static int Zeile;

        static string[,] Spielfeld = new string[3, 3] // Spielfeldarray mit Indexen
        {
            {"I", "I", "I"} ,
            {"I", "I", "I"} ,
            {"I", "I", "I"} ,

        };
        

        static void SpielfeldAnzeigen() // Das Spielfeld wird angezeigt durch eine For-Schleife
        {
            for (int i = 0; i < 3; i++)
            {            
                Console.WriteLine(Spielfeld[i, 0] + Spielfeld[i, 1] + Spielfeld[i, 2]);                
            } 

            Console.WriteLine();
        }


        static void Spieler1() // Spieler 1 tippt mit X
        {
            Console.WriteLine("Spieler 1 ist dran mit tippen!\nTippe zuerst die Spalte, dann die Zeile!");
            Spalte = Convert.ToInt32(Console.ReadLine());
            Zeile = Convert.ToInt32(Console.ReadLine());
            Spielfeld[Zeile, Spalte] = "X";

        }

        static void Spieler2() // Spieler 2 tippt mit O
        {
            Console.WriteLine("Spieler 2 ist dran mit tippen!\nTippe zuerst die Spalte, dann die Zeile!");
            Spalte = Convert.ToInt32(Console.ReadLine());
            Zeile = Convert.ToInt32(Console.ReadLine());
            Spielfeld[Zeile, Spalte] = "O";
        }

        static void GewinnSpieler1() // Gewinnbedingungen im Array für Spieler 2
        {

            if (Spielfeld[0, 0] == "X" && Spielfeld[0, 1] == "X" && Spielfeld[0, 2] == "X")

            {
                Gewinn = true;
                Console.WriteLine("\nSpieler 1 hat gewonnen!");
            }

        }



    // Main Methode beginnt hier
    static void Main(string[] args)
        {

            do
            {
                SpielfeldAnzeigen();
                
                Spieler1();                

                SpielfeldAnzeigen();

                Spieler2();

                GewinnSpieler1();


            } while (Gewinn == false);
          
        }
    }
}