forked from cpe200-161/twofourzeroeight
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTwoZeroFourEightView.cs
101 lines (92 loc) · 2.93 KB
/
TwoZeroFourEightView.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
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 twozerofoureight
{
public partial class TwoZeroFourEightView : Form, View
{
Model model;
Controller controller;
public TwoZeroFourEightView()
{
InitializeComponent();
model = new TwoZeroFourEightModel();
model.AttachObserver(this);
controller = new TwoZeroFourEightController();
controller.AddModel(model);
controller.ActionPerformed(TwoZeroFourEightController.LEFT);
}
public void Notify(Model m)
{
UpdateBoard(((TwoZeroFourEightModel) m).GetBoard());
}
private void UpdateTile(Label l, int i)
{
if (i != 0)
{
l.Text = Convert.ToString(i);
} else {
l.Text = "";
}
switch (i)
{
case 0:
l.BackColor = Color.Gray;
break;
case 2:
l.BackColor = Color.DarkGray;
break;
case 4:
l.BackColor = Color.Orange;
break;
case 8:
l.BackColor = Color.Red;
break;
default:
l.BackColor = Color.Green;
break;
}
}
private void UpdateBoard(int[,] board)
{
UpdateTile(lbl00,board[0, 0]);
UpdateTile(lbl01,board[0, 1]);
UpdateTile(lbl02,board[0, 2]);
UpdateTile(lbl03,board[0, 3]);
UpdateTile(lbl10,board[1, 0]);
UpdateTile(lbl11,board[1, 1]);
UpdateTile(lbl12,board[1, 2]);
UpdateTile(lbl13,board[1, 3]);
UpdateTile(lbl20,board[2, 0]);
UpdateTile(lbl21,board[2, 1]);
UpdateTile(lbl22,board[2, 2]);
UpdateTile(lbl23,board[2, 3]);
UpdateTile(lbl30,board[3, 0]);
UpdateTile(lbl31,board[3, 1]);
UpdateTile(lbl32,board[3, 2]);
UpdateTile(lbl33,board[3, 3]);
}
private void btnLeft_Click(object sender, EventArgs e)
{
controller.ActionPerformed(TwoZeroFourEightController.LEFT);
}
private void btnRight_Click(object sender, EventArgs e)
{
controller.ActionPerformed(TwoZeroFourEightController.RIGHT);
}
private void btnUp_Click(object sender, EventArgs e)
{
controller.ActionPerformed(TwoZeroFourEightController.UP);
}
private void btnDown_Click(object sender, EventArgs e)
{
controller.ActionPerformed(TwoZeroFourEightController.DOWN);
}
}
}