Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

home / study / engineering / computer science / computer science questions and a

ID: 2247477 • Letter: H

Question

home / study / engineering / computer science / computer science questions and answers / create the higher/lower guessing game using a graphical user interface.allow users to keep ...

Question: Create the higher/lower guessing game using a graphical user interface.Allow users to keep guessi...

Create the higher/lower guessing game using a graphical user interface.Allow users to keep guessing until they guess the number. Choose two colors for your game: one should be used to indicate that the value the users guessed is higher than the target; the other is used to indicate that the value the users guessed is lower than the target.With each new guess, change the form color based on whether the guess is higher than the target or lower. Keep a count of the number of guesses.When they hit the target, dis-play a i message indicating the number of guesses it took. Several approaches can be used to seed the target: one is to generate a random number by constructing an object of the Random class. For example, the following stores a random whole number between 0 and 100 in target: Additional requirement: Provide a reset button to enable the user to re-start the game without re-running your application. Tie the guess button to the enter key and the reset button to the cancel key.

My program works but has some bugs:

*the lblRandomNumber should show once the guess is correct (explain)

*the txtGuess does not respond to the return key i.e. Tie the guess button to the enter key (please explain)

*Reset button to the cancel key. (please explain)

*count is incorrect. It appear to be counting by twos.

*Reset

-background color should return to the orginal color

-the count should start over. Currently it is not starting over and the count correct. Please explain.

-you got it right should reset for the next game. Please explain.

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 GuessingGame

{

public partial class Guess : Form

{

int count = 0;

int randomNumber;

  

public Guess()

{

InitializeComponent();

Random r = new Random();

randomNumber = r.Next(1, 101); //set random number parameters

}

private void lblRandomNumber_Click(object sender, EventArgs e)

{

GenerateRandomNumber();

}

//Generate random number

private void GenerateRandomNumber()

{

Random r = new Random();

int randomNumber = r.Next(1, 101); //set random number parameters

lblRandomNumber.Text = "{" + randomNumber.ToString() + "}";

}

//Determine if try is too high , too low or correct.

private void btnTry_Click(object sender, EventArgs e)

{

int guess = 0;

int check;

count++; //track number of guesses

lblGuessNumber.Text = "Guess number :" + count.ToString();

//Compare guess with random number

if (Int32.TryParse(txtGuess.Text, out check))

{

if (txtGuess.Text.Trim() != "")

{

guess = Convert.ToInt32(txtGuess.Text);

}

if (guess > randomNumber)

{

lblResult.Text = "Too high, try again";

BackColor = Color.Green;

  

}

else if (guess < randomNumber)

{

lblResult.Text = "Too low, try again";

BackColor = Color.Yellow;

}

else if (guess == randomNumber)

{

lblResult.Text = "You got it right!";

lblRandomNumber.Visible = true; //make random number visible

lblGuessNumber.Visible = true; //make number of guesses visible

  

txtGuess.Focus();

}

else

lblResult.Text = "invalid number";

}

}

private void btnReset_Click(object sender, EventArgs e)

{

txtGuess.Clear();

  

}

}

}

Explanation / Answer

You can reset the form by two ways, given below.

1) The first method is by writing codes for clearing the text from the text box, changing the background color to default and, changing the label text to their default text or setting it invisible (whichever is applicable), and generating a new random number in the btnReset_click() method.

You can refer following code.

lblRandomNumber.Visible = false; //make random number invisible
lblGuessNumber.Visible = false; //

BackColor = Color.Brown; // if form's default background color was brown

lblResult.Text = "Result label"; // if default text was "Result label"

GenerateRandomNumber(); // finally generating a new random number.

2) The second method is just by creating a new instance to the form and hiding the previous one.

by adding Following line of code in Reset_click() method

Visible = false;

Guess g = new Guess();

g.Vaisible = true;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GuessingGame
{
public partial class Guess : Form
{

int count = 0;
int randomNumber;

public Guess()
{
InitializeComponent();
Random r = new Random();
randomNumber = r.Next(1, 101); //set random number parameters
}

  
//Generate random number
private void GenerateRandomNumber()
{
Random r = new Random();
randomNumber = r.Next(1, 101); //set random number parameters
lblRandomNumber.Text = "{" + randomNumber.ToString() + "}";
}

//Determine if try is too high , too low or correct.


private void btnTry_Click(object sender, EventArgs e)
{
int guess = 0;
int check;
count++; //track number of guesses

lblGuessNumber.Text = "Guess number :" + count.ToString();


//Compare guess with random number
if (Int32.TryParse(txtGuess.Text, out check))
{
if (txtGuess.Text.Trim() != "")
{
guess = Convert.ToInt32(txtGuess.Text);
}
if (guess > randomNumber)
{
lblResult.Text = "Too high, try again";
BackColor = Color.Green;


}
else if (guess < randomNumber)
{
lblResult.Text = "Too low, try again";
BackColor = Color.Yellow;

}
else if (guess == randomNumber)
{
lblResult.Text = "You got it right!";
lblRandomNumber.Visible = true; //make random number visible
lblGuessNumber.Visible = true; //make number of guesses visible

txtGuess.Focus();

}
else
lblResult.Text = "invalid number";


}
}

private void lblRandomNumber_Click(object sender, EventArgs e)
{
lblRandomNumber.Visible = false; //make random number invisible
lblGuessNumber.Visible = false; //
lblResult.Text = "Result label";
BackColor = SystemColors.Control;
GenerateRandomNumber();
}

private void btnReset_Click(object sender, EventArgs e)
{
txtGuess.Text = "";
lblRandomNumber.Visible = false; //make random number invisible
lblGuessNumber.Visible = false; //

BackColor = SystemColors.Control; // if form's default background color was brown

lblResult.Text = "Result label"; // if default text was "Result label"

GenerateRandomNumber(); // finally generating a new random number.
}

private void txtbox_clickedEnter(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnTry.PerformClick();
}
}

}


}

Complete C# Code implementing the 1st method

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GuessingGame
{
public partial class Guess : Form
{

int count = 0;
int randomNumber;

public Guess()
{
InitializeComponent();
Random r = new Random();
randomNumber = r.Next(1, 101); //set random number parameters
}

  
//Generate random number
private void GenerateRandomNumber()
{
Random r = new Random();
randomNumber = r.Next(1, 101); //set random number parameters
lblRandomNumber.Text = "{" + randomNumber.ToString() + "}";
}

//Determine if try is too high , too low or correct.


private void btnTry_Click(object sender, EventArgs e)
{
int guess = 0;
int check;
count++; //track number of guesses

lblGuessNumber.Text = "Guess number :" + count.ToString();


//Compare guess with random number
if (Int32.TryParse(txtGuess.Text, out check))
{
if (txtGuess.Text.Trim() != "")
{
guess = Convert.ToInt32(txtGuess.Text);
}
if (guess > randomNumber)
{
lblResult.Text = "Too high, try again";
BackColor = Color.Green;


}
else if (guess < randomNumber)
{
lblResult.Text = "Too low, try again";
BackColor = Color.Yellow;

}
else if (guess == randomNumber)
{
lblResult.Text = "You got it right!";
lblRandomNumber.Visible = true; //make random number visible
lblGuessNumber.Visible = true; //make number of guesses visible

txtGuess.Focus();

}
else
lblResult.Text = "invalid number";


}
}

private void lblRandomNumber_Click(object sender, EventArgs e)
{
lblRandomNumber.Visible = false; //make random number invisible
lblGuessNumber.Visible = false; //
lblResult.Text = "Result label";
BackColor = SystemColors.Control;
GenerateRandomNumber();
}

private void btnReset_Click(object sender, EventArgs e)
{
txtGuess.Text = "";
lblRandomNumber.Visible = false; //make random number invisible
lblGuessNumber.Visible = false; //

BackColor = SystemColors.Control; // if form's default background color was brown

lblResult.Text = "Result label"; // if default text was "Result label"

GenerateRandomNumber(); // finally generating a new random number.
}

private void txtbox_clickedEnter(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnTry.PerformClick();
}
}

}


}