using System.Diagnostics;
using Timer = System.Windows.Forms.Timer;
namespace ClickTheButtonGame
public partial class Form1 : Form
private int clickCount = 0;
private Stopwatch stopwatch = new Stopwatch();
private Random random = new Random();
private int requiredClicks;
private int currentLevel = 0;
private Timer timer = new Timer();
private readonly (int clicks, int time)[] levels =
button1.Text = "Кликни ме!";
button1.Click += button1_Click;
button1.Click -= button1_Click;
LabelTimer.Text = "Кликове: 0/10";
label1.Text = $"Оставащо време: 0s";
timer.Tick += timer_Tick;
private void StartLevel(int level)
if (level >= levels.Length)
MessageBox.Show("Поздравления ти мина всички нива! Зпочваме отначало ", "Край");
requiredClicks = levels[level].clicks;
timeLimit = levels[level].time;
LabelTimer.Text = $"Кликове: {clickCount}/{requiredClicks}";
label1.Text = $"Оставащо време: {timeLimit}";
label2.Text = $"Ниво: {currentLevel+1}";
StartButton.Enabled = false;
private void button1_Click(object sender, EventArgs e)
if (!stopwatch.IsRunning) return;
LabelTimer.Text = $"Кликове: {clickCount} / {requiredClicks}";
if (clickCount >= requiredClicks)
public void EndGame(bool won)
double timeTaken = stopwatch.ElapsedMilliseconds / 1000.0;
MessageBox.Show($"Победа на ниво: {currentLevel + 1} Време: {timeTaken:F2} секунди", "Резултат");
StartLevel(currentLevel + 1);
MessageBox.Show($"Времето изтече опитай пак. ", "Край!");
StartLevel(currentLevel);
public void timer_Tick(object sender, EventArgs e)
label1.Text = $"Оставащо време {timeLimit} сек";
private void MoveButton()
int maxX = this.ClientSize.Width - button1.Width;
int maxY = this.ClientSize.Height - button1.Height;
int newX = random.Next(0, maxX);
int newY = random.Next(0, maxY);
button1.Location = new Point(newX, newY);
private void StartButton_Click(object sender, EventArgs e)