Skip to content

Commit 81ff2b0

Browse files
author
Geissler Elias
committed
added advanced level
1 parent 99b40c1 commit 81ff2b0

File tree

3 files changed

+68
-1
lines changed

3 files changed

+68
-1
lines changed
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace ball_in_a_maze
8+
{
9+
class LevelAdvanced : LevelBase
10+
{
11+
public LevelAdvanced()
12+
{
13+
const int height = 20;
14+
const int width = 20;
15+
16+
Height = height;
17+
Width = width;
18+
Level = new GameField.GameElements[Height, Width];
19+
20+
// for better visibility
21+
char[][] arr = new char[height][] {
22+
("********************").ToCharArray(),
23+
("* O O O O O*").ToCharArray(),
24+
("* O O O O O O O O O*").ToCharArray(),
25+
("* O O O O O O O O O*").ToCharArray(),
26+
("* O O O O O O O O O*").ToCharArray(),
27+
("* O O O O O O O O O*").ToCharArray(),
28+
("* O O O O O O O O O*").ToCharArray(),
29+
("* O O O O O O O O O*").ToCharArray(),
30+
("* O O O O O O O O O*").ToCharArray(),
31+
("* O O O O O O O O O*").ToCharArray(),
32+
("* O O O O O O O O O*").ToCharArray(),
33+
("* O O O O O O O O O*").ToCharArray(),
34+
("* O O O O O O O O O*").ToCharArray(),
35+
("* O O O O O O O O O*").ToCharArray(),
36+
("* O O O O O O O O O*").ToCharArray(),
37+
("* O O O O O O O O O*").ToCharArray(),
38+
("* O O O O O O O O O*").ToCharArray(),
39+
("* O O O O O O O OFF*").ToCharArray(),
40+
("* O O O OFF*").ToCharArray(),
41+
("********************").ToCharArray()
42+
};
43+
44+
// convert this array to the right type
45+
for (int i = 0; i < Height; i++)
46+
{
47+
for (int j = 0; j < Width; j++)
48+
{
49+
GameField.GameElements elem = new GameField.GameElements();
50+
if (arr[i][j] == ' ')
51+
elem = GameField.GameElements.Empty;
52+
else if (arr[i][j] == '*')
53+
elem = GameField.GameElements.Border;
54+
else if (arr[i][j] == 'O')
55+
elem = GameField.GameElements.Hole;
56+
else if (arr[i][j] == 'F')
57+
elem = GameField.GameElements.Finish;
58+
59+
Level[j, i] = elem;
60+
}
61+
}
62+
}
63+
}
64+
}

ball_in_a_maze/ViewModel.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public ViewModel(MainView mainWindow)
3535
// create the levels
3636
levelTraining = new LevelTraining();
3737
levelBeginner = new LevelBeginner();
38+
levelAdvanced = new LevelAdvanced();
3839

3940
// create the game and connect to events
4041
theGame = new TheGame();
@@ -118,7 +119,7 @@ private void OnTryConnecting(object sender, EventArgs e)
118119
private void OnLevelAdvancedSelected(object sender, EventArgs e)
119120
{
120121
//load the training level
121-
theGame.LoadNewField(levelTraining.Level, levelTraining.Width, levelTraining.Height);
122+
theGame.LoadNewField(levelAdvanced.Level, levelAdvanced.Width, levelAdvanced.Height);
122123
}
123124

124125
private void OnLevelBeginnerSelected(object sender, EventArgs e)
@@ -253,6 +254,7 @@ private void OnBoardIsCalibrated(object sender, EventArgs e)
253254
// the levels
254255
private LevelTraining levelTraining { get; set; }
255256
private LevelBeginner levelBeginner{ get; set; }
257+
private LevelAdvanced levelAdvanced{ get; set; }
256258

257259
// the UI pages
258260
private StartPage startPage { get; set; }

ball_in_a_maze/ball_in_a_maze.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
</ApplicationDefinition>
7373
<Compile Include="ActiveCOMPorts.cs" />
7474
<Compile Include="Game\GameField.cs" />
75+
<Compile Include="Levels\LevelAdvanced.cs" />
7576
<Compile Include="Levels\LevelBase.cs" />
7677
<Compile Include="Levels\LevelBeginner.cs" />
7778
<Compile Include="Pages\ChooseLevelPage.xaml.cs">

0 commit comments

Comments
 (0)