-
Notifications
You must be signed in to change notification settings - Fork 0
/
Form1.cs
219 lines (184 loc) · 6.29 KB
/
Form1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Media;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Math_Quiz
{
public partial class Form1 : Form
{
//adds date to top
DateTime today = DateTime.Today;
//generate random numbers
Random randomizer = new Random();
//stores addition questions
int addend1;
int addend2;
//stores subraction questions
int minuend;
int subtrahend;
//stores subraction questions
int multiplicand;
int multiplier;
//stores subraction questions
int dividend;
int divisor;
//countdown timer
int timeLeft;
//fills in all problems and starts timer
public void StartTheQuiz()
{
//assigns random numbers for math problem
addend1 = randomizer.Next(51);
addend2 = randomizer.Next(51);
//converts numbers into strings and then assignments to the addition labels
plusLeftLabel.Text = addend1.ToString();
plusRightLabel.Text = addend2.ToString();
//makes sure sum field is empty
sum.Value = 0;
//fills in subraction problems --- see addition section for comments
minuend = randomizer.Next(1, 101);
subtrahend = randomizer.Next(1, minuend);
minusLeftLabel.Text = minuend.ToString();
minusRightLabel.Text = subtrahend.ToString();
difference.Value = 0;
//fills in multiplication problems --- see addition section for comments
multiplicand = randomizer.Next(2, 11);
multiplier = randomizer.Next(2, 11);
timesLeftLabel.Text = multiplicand.ToString();
timesRightLabel.Text = multiplier.ToString();
product.Value = 0;
//fills in division problems --- see addition section for comments
divisor = randomizer.Next(2, 11);
int temporaryQuotient = randomizer.Next(2, 11);
dividend = divisor * temporaryQuotient;
dividedLeftLabel.Text = dividend.ToString();
dividedRightLabel.Text = divisor.ToString();
quotient.Value = 0;
//starts timer
timeLeft = 30;
timeLabel.Text = "30 seconds";
timer1.Start();
timeLabel.BackColor = Color.White;
}
//checks answers
private bool CheckTheAnswer()
{
if ((addend1 + addend2 == sum.Value)
&& (minuend - subtrahend == difference.Value)
&& (multiplicand * multiplier == product.Value)
&& (dividend / divisor == quotient.Value))
return true;
else
return false;
}
public Form1()
{
InitializeComponent();
labelDate.Text = today.ToString("dd MMMM yyyy");
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{
}
private void label13_Click(object sender, EventArgs e)
{
}
private void startButton_Click(object sender, EventArgs e)
{
StartTheQuiz();
startButton.Enabled = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (CheckTheAnswer())
{
//stops game if answer is correct
timer1.Stop();
MessageBox.Show("You got all the answers right!",
"Congratulations!");
startButton.Enabled = true;
}
else if (timeLeft > 0)
{
//counts down if answer is not correct
timeLeft--;
timeLabel.Text = timeLeft + " seconds";
}
else
{
//stops game if time is up
timer1.Stop();
timeLabel.Text = "Time's up!";
MessageBox.Show("You didn't finish in time.", "Sorry!");
sum.Value = addend1 + addend2;
difference.Value = minuend - subtrahend;
product.Value = multiplicand * multiplier;
quotient.Value = dividend / divisor;
startButton.Enabled = true;
}
if (timeLeft <= 5)
{
timeLabel.BackColor = Color.Red;
}
}
private void answer_Enter(object sender, EventArgs e)
{
//selects answer in answer box
NumericUpDown answerBox = sender as NumericUpDown;
if (answerBox != null)
{
int lengthOfAnswer = answerBox.Value.ToString().Length;
answerBox.Select(0, lengthOfAnswer);
}
}
private void sum_ValueChanged(object sender, EventArgs e)
{
if (addend1 + addend2 == sum.Value)
{
SoundPlayer simpleSound = new SoundPlayer(@"");
//simpleSound.Play();
}
}
private void difference_ValueChanged(object sender, EventArgs e)
{
if (minuend - subtrahend == difference.Value)
{
SoundPlayer simpleSound = new SoundPlayer(@"");
//simpleSound.Play();
}
}
private void multiply_ValueChanged(object sender, EventArgs e)
{
if (multiplicand * multiplier == product.Value)
{
SoundPlayer simpleSound = new SoundPlayer(@"");
//simpleSound.Play();
}
}
private void divide_ValueChanged(object sender, EventArgs e)
{
if (dividend / divisor == quotient.Value)
{
SoundPlayer simpleSound = new SoundPlayer(@"");
//simpleSound.Play();
}
}
private void labelDate_Click(object sender, EventArgs e)
{
}
}
}