-
Notifications
You must be signed in to change notification settings - Fork 0
/
GamePlay.xaml.cs
151 lines (131 loc) · 4.21 KB
/
GamePlay.xaml.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Threading;
namespace MathGame
{
/// <summary>
/// Interaction logic for GamePlay.xaml
/// </summary>
public partial class GamePlay : Window
{
private bool gameStarted;
private game Game;
private readonly DispatcherTimer dispatcherTimer;
public GamePlay()
{
#region TymerSetUp
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
#endregion
InitializeComponent();
TbAnswer.Text = "";
}
/// <summary>
/// controls the timer and keeps the game class up to date on the seconds
/// </summary>
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
try
{
LbTimerz.Content = Game.updateTime().ToString();
}
catch (Exception ex)
{
dispatcherTimer.Stop();
this.Hide();
}
if (Game.getNumQuestions() <= 0)
dispatcherTimer.Stop();
}
#region ThingsthatCallNext
/// <summary>
/// calles next
/// </summary>
private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
next();
}
}
/// <summary>
/// calles next
/// </summary>
private void BtNext_Click(object sender, RoutedEventArgs e)
{
next();
}
#endregion
/// <summary>
/// calls the game.checkAnswer and then updates scoreboard
/// </summary>
private void next()
{
if (gameStarted)
{
try
{
int answer = int.Parse(TbAnswer.Text.ToString());
Game.checkAnswer(answer);
}
catch (Exception ex)
{
Game.checkAnswer(0);
}
if (Game.getNumQuestions() <= 0)
{
this.Hide();
}
LbMathProblem.Content = Game.equasion();
LbCorrect.Content = Game.getCorrectScore();
LbIncorrect.Content = Game.getIncorrectScore();
LbQl.Content = Game.getNumQuestions();
TbAnswer.Text = "";
}
}
/// <summary>
/// starts game then hides the start game button
/// </summary>
private void BtStartz_Click(object sender, RoutedEventArgs e)
{
Game = new game();
gameStarted = true;
dispatcherTimer.Start();
BtStartz.Visibility = Visibility.Hidden;
BtCancel.Visibility = Visibility.Visible;
LbMathProblem.Content = Game.equasion();
}
/// <summary>
/// how to close the game instructions
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)//why is this dark??
{
e.Cancel = true;
this.Hide();
}
/// <summary>
/// The button to end the game early
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtCancel_Click(object sender, RoutedEventArgs e)
{
dispatcherTimer.Stop();
this.Hide();
}
}
}