Parcours - Maustraining

// Parcours - Maustraining
 
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 _09Parcours
{
 
    public partial class Form1 : Form
    {
        Graphics gObject;
        SolidBrush brush;
        Pen pen;
        Font drawFont;
        int zaehler = 0;
 
        public const int anzahl = 5;  //Anzahl der Quadrate
 
        //Punktarray für die linke obere Ecke der Quadrate
        Point[] punkte = new Point[anzahl];
 
        public Form1()
        {
            InitializeComponent();
            gObject = canvas.CreateGraphics();
         }
 
        private void button1_Click(object sender, EventArgs e)
        {
            gObject.Clear(Color.White); //Löschen der Oberfläche
            pen = new Pen(Color.Black);
            brush = new SolidBrush(Color.Black);
            drawFont = new Font("Arial", 8);
            zaehler = 0;
            pictureBox1.Visible = false;
            pictureBox2.Visible = false;
            int zufallx = 0, zufally = 0;
            Random rand = new Random();
 
            gObject.DrawRectangle(pen, 0, 0, canvas.Width-1, canvas.Height-1);
 
            label1.Text = "Los gehts! Klicke auf Quadrat 1...";
            //Erstellung der Quadrate
            for(int i = 0;i<anzahl;i++)
            {
                //rand.Next(3,8) ... liefert Zufallszahlen zwischen 3 und 7
                zufallx = rand.Next(2, canvas.Width - 17);
                zufally = rand.Next(2, canvas.Height - 17);
                punkte[i].X = zufallx;
                punkte[i].Y = zufally;
                gObject.DrawRectangle(pen, punkte[i].X, punkte[i].Y, 16, 16);
                if(i<9) gObject.DrawString((i + 1).ToString(), drawFont, brush, punkte[i].X+3, punkte[i].Y + 1);
                else
                gObject.DrawString((i + 1).ToString(), drawFont, brush, punkte[i].X, punkte[i].Y+1);
            }
            lb_qx.Text = "X: " + punkte[0].X.ToString();
            lb_qy.Text = "Y: " + punkte[0].Y.ToString();
        }
 
        private void canvas_MouseDown(object sender, MouseEventArgs e)
        {
            if (zaehler < anzahl)
            {
                if (e.X > punkte[zaehler].X && e.X < punkte[zaehler].X + 17 && e.Y > punkte[zaehler].Y && e.Y < punkte[zaehler].Y + 17)
                {
                    if (zaehler < anzahl - 1)
                    {
                        label1.Text = "Getroffen, weiter zu Quadrat " + (zaehler + 2).ToString() + " ...";
                        Console.WriteLine("XY-Koord. passt");
                    }
                    else
                    {
                        label1.Text = "Gewonnen! Alle Quadrate richtig getroffen!";
                        zaehler = anzahl;
                        pictureBox1.Visible = true;
                    }
                }
                else
                {  //Daneben geklickt! --> Verloren!
                    label1.Text = "VERLOREN! ";
                    zaehler = anzahl;
                    //Console.WriteLine("XY-Koord. passt nicht!");
                    pictureBox2.Visible = true;
                }
                zaehler++; //Klicks mitzählen
                Console.WriteLine(zaehler);
            }
        }
 
        private void canvas_MouseMove(object sender, MouseEventArgs e)
        {
            lb_x.Text = "X: "+e.X.ToString();
            lb_y.Text = "Y: " +e.Y.ToString();
        }
    }
}