Analysis Template

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Analysis

Problem Definition (Broad Aims/Overview)


What is your problem solution intended to do?

How does it work on what platform?


Visual Studio provides a robust environment for developing, testing, and
debugging the application. My project is a C# chess game, developed
using visual studio as the platform. The game is designed for a player vs
AI format, where the AI matches the moves of the player. The game
interface displays a digital chessboard where players can click on pieces
to move them. The AI evaluates the player’s moves and mirrors them to
maintain a balanced level of difficulty.

What is the target audience?


Bury college primarily teaches students aged 16-18, studying A-Level
education also offering other courses. A teacher runs a chess club on
Fridays from 12-1 in room V513. However there has been a decrease in
the number of people playing chess as pieces are getting lost,
furthermore college can’t keep spending money on chess sets. Game
could appeal to casual players who want a balanced, fair challenge. The AI
offers a consistent opponent that mirrors the player's skill.

What does it intend to address?


My project aims to solve this problem by providing a digital solution in the
form of a player vs AI chess game. By coding the game in C#, the club
members will no longer have to rely on physical boards and pieces,
ensuring they can play uninterrupted. The AI I am coding will match the
player’s skill level, providing a consistent and balanced opponent for
practice or casual play, allowing the chess club members to enjoy games
without the logistical problems of maintaining physical sets.

Background
Why did you choose this problem?

I chose this problem because of my passion for chess, which I developed


after I started playing the game in early 2023. Since then, I’ve been
hooked by the depth of chess and the fact that there are millions of
possible moves and combinations that can unfold in a single game. This
keeps every match exciting and unique. Through my project, I wanted to
bring my love for chess and problem-solving together by creating a digital
chess experience.
Solving the issue of lost pieces in the chess club while letting others enjoy
the game that has captured my interest felt like the perfect way to merge
my passion with a practical solution.

Research and Investigation


Create a log of research and investigation activities. If online research
conducted, put down the link; if interview conducted, put down whom. For
each method of investigation, summarise it and explain what you have
learned.

Are there any current similar problems?


If any, discuss their pros and cons in comparison with your proposed
solution.
What are your target audience survey/interview results?
Is there a need for the proposed solution?
What improvements did those results tell you?
What justifications do you have for your solution?

Objectives
Give a list of specific and measurable objectives to reach a full solution.
BE VERY SPECIFIC!

1.Game must load with a main menu, showing buttons to start a game
between player vs AI.

2.Board will have cells where each piece will a memory location.

3.Board will be(8X8), there will be rook, bishop, queen,king,pawn,knight,rook, for


both black and white .

4.Pawn only goes up a block at a time, except at the start it has the option to go up 2
blocks.

5.Knight moves two squares vertically and one square horizontally, or two squares
horizontally and one square vertically (with both forming the shape of a capital L)

6.Queen- move 1-7 squares in any direction, up, down, left, right.

7.Bishop moves diagonally only. The black bishop must only move diagonally in the
black squares and white bishop must only move in the white squares.

8.Rook moves horizontally, vertically, can move in any square. Can castle with King.
9.King, can castle, can be checked but can be blocked by a piece or move
to a safe block to get away from the check. Can move 1 block at a time
anywhere, (left, right up, down, diagonally). King must be checkmated to win the
game (King can’t move anywhere else to avoid the check).
10. Use recursive algorithms to implement the Minimax algorithm with Alpha-Beta pruning,
enabling the AI to search deeper into future moves while optimizing performance.

11. Create a complex Object-Oriented Programming (OOP) design using classes for each
chess piece, the chessboard, and the AI logic.

12. Implement a simple version of a relational database that tracks basic player statistics,
such as wins, losses, and draw rates across games.
12.1 At the end of the game, it will output the respective users records of moves in the
databse.

13. Use binary search to efficiently validate moves from a pre-defined list of legal moves for
each chess piece.

14. Implement polymorphism and inheritance,define a base class called ChessPiece


that contains shared attributes and methods common to all pieces (e.g., position, color, and
move validation).
14.1? Each specific chess piece (like Pawn, Rook, Bishop) will inherit from this base
class and implement its own unique movement logic.

15. Implement specific chess rules like castling, pawn promotion, and en passant.

29.A screen at the end if you have been checkmated, have checkmated the
opponent, or stalemate by 50 move rules.
29.1 A screen for playing again or quit the game.

Nothing should resemble this: Create an aesthetically pleasing UI

Your solution will be marked on completeness (15 marks max) which is


measured by your objectives.
Modelling (Data and System)
Provide a proposed E-R diagram or/and data flow diagram or any
meaningful diagram on how the different components of the systems work
together and how data will be passed among those components.

 Need to maintain a representation of the game state, such as the position of all pieces,
whose turn it is, and the game outcome.
 A 2D array or list of lists (8x8 grid) could represent the chessboard.
A loop of the game will alternate between the player’s and AI’s turns until the game reaches
an end condition (checkmate, stalemate, or draw)

Turn Management

 The control of turns will be alternated between the player and the AI.
 If it's the player's turn, they will input a move, and the board will update accordingly.
 After that, the AI will make its move based on the same board state
  Once moves are made, the game will check if the move results in checkmate,
stalemate, or a draw.
  Data for the game result can be updated in the GameState class

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy