Chess Maze – Level Designer

About

This is a Chess Maze game focusing on the Level Designer aspect of the game. The project was developed with MVC (Model, View, Controller) in Visual Studio 2022.

The model was built on .NET 8.0 LTS. In creating the model I had to determine features that would be implemented into it that were relevant to the Level Designer. My features were:

Create LevelSet Level SizeGet Level Size
Set Level NameGet Level NamePlace Piece
Remove PieceGet Piece AtPiece Validation
Check Board BoundsSet Start PointSet Finish Point
Add GoalRemove GoalRemove All Goals
Get GoalsGet Start Point Get Finish Point
Features In The Project

Along with the model, I also wrote 35 test cases to test the functionality of the model before progressing to creating the views of the project. The test cases covered all of the features individually as well as multiple features at once to ensure the program was correctly functioning.

Once the model was created, I made the WinForms view first followed by a WPF (Windows Presentation Foundation) view. WinForms is a well known and established way of making views for Windows based applications. WPF is the newer way of creating views that focuses on XAML and XML files rather than using C# files. WPF is becoming the new standard with it having features like scalability and more modern controls and layouts.

WinForms was created first as it was made manually with dragging, dropping, and utilising Visual Studios ‘ToolBox’ to make the views for the application. This was a multi-formed application with three different views. The home page, a prompt to set up the level, and then the main form to design the level. There was also some pragmatically made elements for warnings, alerts, dialogs, and small text boxes (changing level name).

Using WPF (Windows Presentation Foundation) for creating a second view was made as more of a hybrid view mixing manually created controls with programmatically created controls too. This was also a multi paged view too with 4 views; Home, a pop-up for level generation, the main level designer window, and the pop-up for changing level characteristics.