.Create a console-based lottery game application named Lottery. Generate three r
ID: 3868532 • Letter: #
Question
.Create a console-based lottery game application named Lottery. Generate three random numbers, each between 1 and 4. Allow the user to guess three numbers. Compare each of the user’s guesses to the three random numbers and display a message that includes the user’s guess, the randomly determined three-digit number, and the amount of money the user has won as follows: Matching Numbers Award ($) Any one matching 10 Two matching 100 Three matching, not in order 1000 Three matching in exact order 10,000 No matches 0 Make certain that your application accommodates repeating digits. For example, if a user guesses 1, 2, and 3, and the randomly generated digits are 1, 1, and 1, do not give the user credit for three correct guesses—just one. b.Create a GUI application named LotteryGUI that lets the user play the Lottery game described in Exercise 9a.
Explanation / Answer
Form1.cs
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 LotteryGUI
{
public partial class Form1 : Form
{
private int[] iGuesses = new int[3]; // declared at form level
private int[] iSortedGuesses = new int[3];
public Form1()
{
InitializeComponent();
}
private void textBox1_Leave(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("You haven't chosen your first number yet");
textBox1.Focus();
return;
}
int iGuess;
int.TryParse(textBox1.Text, out iGuess);
if (iGuess < 1 || iGuess > 4)
{
MessageBox.Show("You have entered an incorrect number please try again");
textBox1.Focus();
return;
}
iGuesses[0] = iGuess;
iSortedGuesses[0] = iGuess;
}
private void textBox2_Leave(object sender, EventArgs e)
{
if (textBox2.Text == "")
{
MessageBox.Show("You haven't chosen your second number yet");
textBox2.Focus();
return;
}
int iGuess;
int.TryParse(textBox2.Text, out iGuess);
if (iGuess < 1 || iGuess > 4)
{
MessageBox.Show("You have entered an incorrect number please try again");
textBox2.Focus();
return;
}
iGuesses[1] = iGuess;
iSortedGuesses[1] = iGuess;
}
private void textBox3_Leave(object sender, EventArgs e)
{
if (textBox3.Text == "")
{
MessageBox.Show("You haven't chosen your third number yet");
textBox3.Focus();
return;
}
int iGuess;
int.TryParse(textBox3.Text, out iGuess);
if (iGuess < 1 || iGuess > 4)
{
MessageBox.Show("You have entered an incorrect number please try again");
textBox3.Focus();
return;
}
iGuesses[2] = iGuess;
iSortedGuesses[2] = iGuess;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")
{
MessageBox.Show("You haven't yet chosen three numbers");
return;
}
// declaring variables integer type
int iNum1;
int iNum2;
int iNum3;
// declaring the constants
const int iMATCHONE = 10;
const int iMATCHTWO = 100;
const int iMATCHTHREE = 1000;
const int iMATCHFOUR = 10000;
// declaring array
int[] iSortedNums = new int[3];
// generating random numbers
Random randomnumber = new Random();
iNum1 = randomnumber.Next(1, 5); // number between 1 and 4
iNum2 = randomnumber.Next(1, 5);
iNum3 = randomnumber.Next(1, 5);
iSortedNums[0] = iNum1;
iSortedNums[1] = iNum2;
iSortedNums[2] = iNum3;
Array.Sort(iSortedNums); // sort random numbers
Array.Sort(iSortedGuesses); // sort the guesses
label4.Text = String.Format("The random numbers are : " + iNum1 + ", " + iNum2 + ", " + iNum3);
label5.Text = String.Format("The numbers you chose are : " + iGuesses[0] + ", " + iGuesses[1] + ", " + iGuesses[2]);
if (iGuesses[0] == iNum1 && iGuesses[1] == iNum2 && iGuesses[2] == iNum3)
{
MessageBox.Show("you won $" + iMATCHFOUR);
}
else if (iSortedGuesses[0] == iSortedNums[0] && iSortedGuesses[1] == iSortedNums[1]
&& iSortedGuesses[2] == iSortedNums[2])
{
MessageBox.Show("you won $" + iMATCHTHREE);
}
else if ((iGuesses[0] == iNum1 && iGuesses[1] == iNum2) || (iGuesses[1] == iNum2 && iGuesses[2] == iNum3))
{
MessageBox.Show("you won $" + iMATCHTWO);
}
else if (iGuesses[0] == iNum1 || iGuesses[1] == iNum2 || iGuesses[2] == iNum3)
{
MessageBox.Show("you won $" + iMATCHONE);
}
else
{
MessageBox.Show("sorry, you didn't win anything");
}
}
}
}
Form1.Designer.cs
namespace LotteryGUI
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBox1.Location = new System.Drawing.Point(16, 129);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 31);
this.textBox1.TabIndex = 0;
this.textBox1.Leave += new System.EventHandler(this.textBox1_Leave);
//
// textBox2
//
this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBox2.Location = new System.Drawing.Point(16, 187);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 31);
this.textBox2.TabIndex = 1;
this.textBox2.Leave += new System.EventHandler(this.textBox2_Leave);
//
// textBox3
//
this.textBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBox3.Location = new System.Drawing.Point(16, 241);
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(100, 31);
this.textBox3.TabIndex = 2;
this.textBox3.Leave += new System.EventHandler(this.textBox3_Leave);
//
// label4
//
this.label4.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label4.Location = new System.Drawing.Point(11, 306);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(459, 41);
this.label4.TabIndex = 3;
//
// label5
//
this.label5.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label5.Location = new System.Drawing.Point(11, 363);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(459, 38);
this.label5.TabIndex = 4;
//
// button1
//
this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button1.Location = new System.Drawing.Point(138, 129);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(186, 60);
this.button1.TabIndex = 5;
this.button1.Text = "Click to compare your three guesses to the random";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(12, 66);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(458, 42);
this.label1.TabIndex = 6;
this.label1.Text = "Guess the three random numbers. Enter a number from 1 to 4";
//
// label2
//
this.label2.BackColor = System.Drawing.Color.Salmon;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(16, 13);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(253, 32);
this.label2.TabIndex = 7;
this.label2.Text = "Guess the Random numbers ";
//
// label3
//
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label3.Location = new System.Drawing.Point(476, 18);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(228, 213);
this.label3.TabIndex = 8;
this.label3.Text = "Prizes Any one matching 10 Two matching 100 Three matching, not in order " +
"1000 Three matching in exact order 10,000 No matches 0 ";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(706, 430);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "LotteryGUI";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LotteryGUI
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.