Add restart button and confetti effect to Gokspel game

This commit is contained in:
vista-man
2025-01-27 20:07:27 +01:00
parent a612e37e82
commit 4a081ae681
12 changed files with 19 additions and 5 deletions

View File

@@ -16,32 +16,39 @@ class Program : Form
public Program() public Program()
{ {
// Initialize the random number to guess
numberToGuess = random.Next(1, 101); numberToGuess = random.Next(1, 101);
// Set up the form
this.Text = "Gokspel"; this.Text = "Gokspel";
this.Size = new System.Drawing.Size(300, 200); this.Size = new System.Drawing.Size(300, 200);
// Create and add the prompt label
Label promptLabel = new Label(); Label promptLabel = new Label();
promptLabel.Text = "Raad het getal tussen 1 en 100:"; promptLabel.Text = "Raad het getal tussen 1 en 100:";
promptLabel.Location = new System.Drawing.Point(10, 20); promptLabel.Location = new System.Drawing.Point(10, 20);
promptLabel.AutoSize = true; promptLabel.AutoSize = true;
this.Controls.Add(promptLabel); this.Controls.Add(promptLabel);
// Create and add the input box
inputBox = new TextBox(); inputBox = new TextBox();
inputBox.Location = new System.Drawing.Point(10, 50); inputBox.Location = new System.Drawing.Point(10, 50);
this.Controls.Add(inputBox); this.Controls.Add(inputBox);
// Create and add the guess button
guessButton = new Button(); guessButton = new Button();
guessButton.Text = "Gok"; guessButton.Text = "Gok";
guessButton.Location = new System.Drawing.Point(10, 80); guessButton.Location = new System.Drawing.Point(10, 80);
guessButton.Click += new EventHandler(GuessButton_Click); guessButton.Click += new EventHandler(GuessButton_Click);
this.Controls.Add(guessButton); this.Controls.Add(guessButton);
// Create and add the result label
resultLabel = new Label(); resultLabel = new Label();
resultLabel.Location = new System.Drawing.Point(10, 110); resultLabel.Location = new System.Drawing.Point(10, 110);
resultLabel.AutoSize = true; resultLabel.AutoSize = true;
this.Controls.Add(resultLabel); this.Controls.Add(resultLabel);
// Create and add the restart button (initially hidden)
restartButton = new Button(); restartButton = new Button();
restartButton.Text = "Opnieuw"; restartButton.Text = "Opnieuw";
restartButton.Location = new System.Drawing.Point(10, 140); restartButton.Location = new System.Drawing.Point(10, 140);
@@ -49,6 +56,7 @@ class Program : Form
restartButton.Visible = false; restartButton.Visible = false;
this.Controls.Add(restartButton); this.Controls.Add(restartButton);
// Set up the confetti timer
confettiTimer = new System.Windows.Forms.Timer(); confettiTimer = new System.Windows.Forms.Timer();
confettiTimer.Interval = 30; confettiTimer.Interval = 30;
confettiTimer.Tick += new EventHandler(ConfettiTimer_Tick); confettiTimer.Tick += new EventHandler(ConfettiTimer_Tick);
@@ -71,7 +79,7 @@ class Program : Form
{ {
resultLabel.Text = "Gefeliciteerd! Je hebt het juiste getal geraden."; resultLabel.Text = "Gefeliciteerd! Je hebt het juiste getal geraden.";
StartConfetti(); StartConfetti();
restartButton.Visible = true; restartButton.Visible = true; // Show the restart button
} }
} }
else else
@@ -82,17 +90,19 @@ class Program : Form
private void RestartButton_Click(object sender, EventArgs e) private void RestartButton_Click(object sender, EventArgs e)
{ {
// Reset the game
numberToGuess = random.Next(1, 101); numberToGuess = random.Next(1, 101);
resultLabel.Text = ""; resultLabel.Text = "";
inputBox.Text = ""; inputBox.Text = "";
confettiList.Clear(); confettiList.Clear();
confettiTimer.Stop(); confettiTimer.Stop();
restartButton.Visible = false; restartButton.Visible = false; // Hide the restart button
this.Invalidate(); this.Invalidate();
} }
private void StartConfetti() private void StartConfetti()
{ {
// Initialize confetti
confettiList.Clear(); confettiList.Clear();
for (int i = 0; i < 100; i++) for (int i = 0; i < 100; i++)
{ {
@@ -103,6 +113,7 @@ class Program : Form
private void ConfettiTimer_Tick(object sender, EventArgs e) private void ConfettiTimer_Tick(object sender, EventArgs e)
{ {
// Update confetti positions
for (int i = 0; i < confettiList.Count; i++) for (int i = 0; i < confettiList.Count; i++)
{ {
confettiList[i].Update(); confettiList[i].Update();
@@ -113,6 +124,7 @@ class Program : Form
protected override void OnPaint(PaintEventArgs e) protected override void OnPaint(PaintEventArgs e)
{ {
base.OnPaint(e); base.OnPaint(e);
// Draw confetti
foreach (var confetti in confettiList) foreach (var confetti in confettiList)
{ {
e.Graphics.FillEllipse(new SolidBrush(confetti.Color), confetti.Position.X, confetti.Position.Y, confetti.Size, confetti.Size); e.Graphics.FillEllipse(new SolidBrush(confetti.Color), confetti.Position.X, confetti.Position.Y, confetti.Size, confetti.Size);
@@ -137,6 +149,7 @@ class Confetti
public Confetti(Random random, Size clientSize) public Confetti(Random random, Size clientSize)
{ {
// Initialize confetti properties
Position = new PointF(random.Next(clientSize.Width), random.Next(clientSize.Height)); Position = new PointF(random.Next(clientSize.Width), random.Next(clientSize.Height));
SpeedY = (float)(random.NextDouble() * 2 + 1); SpeedY = (float)(random.NextDouble() * 2 + 1);
SpeedX = (float)(random.NextDouble() * 2 - 1); SpeedX = (float)(random.NextDouble() * 2 - 1);
@@ -146,6 +159,7 @@ class Confetti
public void Update() public void Update()
{ {
// Update confetti position and apply gravity
Position = new PointF(Position.X + SpeedX, Position.Y + SpeedY); Position = new PointF(Position.X + SpeedX, Position.Y + SpeedY);
SpeedY += 0.1f; // gravity effect SpeedY += 0.1f; // gravity effect
} }

View File

@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Gokspel")] [assembly: System.Reflection.AssemblyCompanyAttribute("Gokspel")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5e0e0a7907fee55389f89acc2c73bf9b341ddcaa")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a612e37e825def883bfd7fe26fc57829939c8f7c")]
[assembly: System.Reflection.AssemblyProductAttribute("Gokspel")] [assembly: System.Reflection.AssemblyProductAttribute("Gokspel")]
[assembly: System.Reflection.AssemblyTitleAttribute("Gokspel")] [assembly: System.Reflection.AssemblyTitleAttribute("Gokspel")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
c9244a4ee0444c03cc63d0bf7d904d54d44cbc174ca7623827c8d17875284eed c5d086a89aa6b0df3b5af5d9db4cb515ec3bb0d006057a034554e4bce0e84345

View File

@@ -1 +1 @@
{"documents":{"C:\\Users\\steen\\Desktop\\Alvin\\ict-algemeen-opdrachten\\*":"https://raw.githubusercontent.com/Alvin-Zilverstand/ict-algemeen-opdrachten/5e0e0a7907fee55389f89acc2c73bf9b341ddcaa/*"}} {"documents":{"C:\\Users\\steen\\Desktop\\Alvin\\ict-algemeen-opdrachten\\*":"https://raw.githubusercontent.com/Alvin-Zilverstand/ict-algemeen-opdrachten/a612e37e825def883bfd7fe26fc57829939c8f7c/*"}}