Vier gewinnt

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace _10Viergewinnt
{
    public partial class Form1 : Form
    {
        Graphics gObject;      
        SolidBrush brush;
 
 
        //2dim Array für Felder
        int[,] feld = new int[7, 6];    //1.. gelb, 2...rot, 10 ... leer
 
        //1dim Array für Anzahl der belegten Plätze in bestimmter Spalte
        int[] spalte = new int[7];   
 
        bool rot = true;    // ob Rot dran ist, wenn false --> gelb
        bool vorbei = false;
 
        int anzahlwuerfe = 0;
 
        public Form1()
        {
            InitializeComponent();
            gObject = canvas.CreateGraphics();
            brush = new SolidBrush(Color.White);
        }
 
        public void neustart()  //wird bei Spielbeginn
        {
            vorbei = false;
            anzahlwuerfe = 0;
            gObject.Clear(Color.Blue);
            brush.Color = Color.White;
            rot = true;     //Rot ist zu Beginn dran.
 
            for(int i=0; i<7; i++)
            {
                spalte[i] = 0;    //Initialisierung der Spaltenbelegung
                for(int j=0; j<6;j++)
                {
                    //Zeichnen der Kreise
                    gObject.FillEllipse(brush, i*100+10, j*100+10, 80, 80);
                    feld[i, j] = 10;   //Initialisieren der Felder: 10 ... leer
                }
            }
        }
 
        public void pruefefeld()
        {
            int summe = 0;
            string gewinner = "";
 
            //Prüfe senkrecht
            for(int x=0;x<7;x++)  //Gehe Spalten durch
            {
                for(int y=0;y<3;y++)   //Einzelne Spalte
                {
                    //Summenprüfung
                    summe = feld[x, y] + feld[x, y + 1] + feld[x, y + 2] + feld[x, y + 3];
                    if (summe==4)  //Gelb hat gewonnen
                    {
                        gewinner = "Gelb";
                    }
                    if (summe==8)  //Rot hat gewonnen
                    {
                        gewinner = "Rot";
                    }
                }
            }
 
            //Prüfe waagrecht
            for(int x=0;x<4;x++)
            {
                for(int y=0;y<6;y++)
                {    //Summenprüfung
                    summe = feld[x, y] + feld[x+1, y] + feld[x+2, y] + feld[x+3, y];
                    if (summe == 4)  //Gelb hat gewonnen
                    {
                        gewinner = "Gelb";
                    }
                    if (summe == 8)  //Rot hat gewonnen
                    {
                        gewinner = "Rot";
                    }
                }
            }
 
            //Prüfe diagonal
            for(int x=0;x<4;x++)
            {
                for(int y=0;y<3;y++)
                {
                    summe = feld[x, y] + feld[x + 1, y + 1] + feld[x + 2, y + 2] + feld[x + 3, y + 3];
                    if (summe == 4)  gewinner = "Gelb";
                    if (summe == 8)  gewinner = "Rot";
                    summe = feld[x, y + 3] + feld[x + 1, y + 2] + feld[x + 2, y + 1] + feld[x + 3, y];
                    if (summe == 4) gewinner = "Gelb";
                    if (summe == 8) gewinner = "Rot";
                }
            }
 
            if(anzahlwuerfe==42&&gewinner=="")
            {
                MessageBox.Show("Unentschieden!");
                vorbei = true;
            }
            else if(gewinner!="")
            {
                MessageBox.Show(gewinner + " hat gewonnen!");
                vorbei = true;   //Spiel vorbei
            }
        }
 
        private void canvas_Paint(object sender, PaintEventArgs e)
        {
            neustart();
        }
 
        private void canvas_MouseMove(object sender, MouseEventArgs e)
        {
            label1.Text = e.X.ToString();
            label2.Text = e.Y.ToString();
            label3.Text = (e.X / 100).ToString();
            label4.Text = (e.Y / 100).ToString();
        }
 
        private void canvas_MouseDown(object sender, MouseEventArgs e)
        {
            int x = e.X / 100;   //angeklickte Spalte
            if (!vorbei)   //Prüfe nur, wenn Spiel noch nicht vorbei!
            {
                if (spalte[x] < 6)     //wenn noch Platz frei ist....
                {
                    //Zeichnen der richtigen Farbe ins richtige Feld
                    //Ist rot dran?
 
                    if (rot)
                    {
                        //Rot zeichnen und ins feld für rot ... 2 reinschreiben
                        brush.Color = Color.Red;
                        feld[x, spalte[x]] = 2;
 
                    }
                    else   //gelb ist dran
                    {
                        //gelb zeichnen und ins feld für gelb ... 1 reinschreiben
                        brush.Color = Color.Yellow;
                        feld[x, spalte[x]] = 1;
                    }
                    gObject.FillEllipse(brush, x * 100 + 10, (5 - spalte[x]) * 100 + 10, 80, 80);
                    spalte[x]++;
                    anzahlwuerfe++;
                    rot = !rot;
                }
                else
                {
                    MessageBox.Show("Spalte schon voll!");
                }
                pruefefeld();
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            neustart();
        }
    }
}