Professional Documents
Culture Documents
Project Phase II Report: Bachelor of Engineering
Project Phase II Report: Bachelor of Engineering
Project Phase II Report: Bachelor of Engineering
Project course
BACHELOR OF ENGINEERING
UID
20BCS7263
20BCS3392
20BCS7212
Co-Supervisor Signature
ABSTRACT
Algorithms are crucial in the field of computer science. The demand for
innovative issue-solving, improving current solutions, boosting the
effectiveness of developing new solutions, etc., has grown recently. A solid
grasp of algorithms is a prerequisite for these talents. This project aims to
illustrate all sorting
and shortest path algorithms that determine the best route from a source to a
destination node while taking into account time and cost restrictions.
The most effective uses of path-finding algorithms can be found through
experimentation with various sets and combinations of these algorithms.
These applications include traffic congestion management, digital mapping
services, social networking applications, robotics, game development, and many
other real-world situations. And it's capability includes several algorithms,
including BFS, DFS, Dijkstra, A* Search, IDA* Search, Jump Point Search,
and test simulations, where all the aforementioned techniques are compared by
shared parameters to determine which algorithm provides the best path in each
scenario. Sorting algorithms, on the other hand, can highlight effective
programming paradigms and stimulate conversations regarding algorithm
complexity. Research has demonstrated that rather than programming exercises,
hands-on activities that use analogies and enjoyable activities may enhance
learning in this area in a variety of ways.
TABLE OF CONTENT
1. Introduction 5
2. Literature Review 6
3. Problem Definition 8
4. Objectives 10
5. References 11
SORTING & PATHFINDING VISUALIZER
INTRODUCTION
• React js
• VS CODE
• Github
• JavaScript
4
SORTING & PATHFINDING VISUALIZER
LITERATURE REVIEW
The employment of filtering techniques as visual aids has been the subject of various
research and articles throughout the years. One covers every aspect of animation and
mathematical analysis, while the others concentrate on various methods for better
comprehending a single animation. For students to readily learn algorithms, a variety
of techniques have been created. The process of visualizing algorithms into
applications is a popular way of planning and programming. It is taught using the
following techniques: classic expressions and laboratories, robots, problem-based
learning, software visibility, programming areas, and support tools Teachers still
struggle with the laborious learning-teaching process, which includes interdisciplinary
testing, fine-tuning, publishing supplementary materials, and 78.6% of CS teaching-
related strategies.
The majority of algorithm visualization tools delivered positive outcomes when used
to their fullest ability to illustrate the data structure and algorithms. Students want
accurate graphical representations that provide accurate information about how a
specific algorithm is executed. Algorithm visualizer tools have been the subject of
several assessments in recent years. Overall, the findings indicated that passive
algorithm visualization or basic visualization had little effect on learners due to poor
student involvement. Christopher D. Hundhausen conducted a methodical analysis of
algorithm visualizer tools' efficacy. They found from their meta-study of 24 studies on
algorithm visualizer tools that how learners utilize visuals is more crucial than the
visualizations themselves, and that the environments of algorithm visualizer tools only
work well when the learners are actively involved in the learning process.
Our Methodology :
basic activities:
1 Creating specifications
2 Creating alternative designs and prototypes
3 Evaluation
The aims and their pertinent elements were determined by a thorough literature review
we did for the activity of creating specifications. We created the user interfaces and
the visualizations during the developing alternatives and prototyping activity by
adhering to Shneiderman's eight guiding principles. In this study, we focused mostly
5
SORTING & PATHFINDING VISUALIZER
Software Requirements
To test this process, software was developed and implemented. The program is based
on React js, JavaScript and Html where it needs to be shipped, windows 10 and others.
PROBLEM DEFINITION
Block Diagram
6
SORTING & PATHFINDING VISUALIZER
Problem: The problem is to design a chess game using machine learning, neural
networks and artificial intelligence. The main classes available are -
2. Piece: Basic building blocks of the system, each part in one place. The Piece class
is an abstract class. Extension classes (pawn, king, queen, rook, knight, bishop)
implement abstracted operations.
Chess is played by two players, one color, a white and black piece for each. Then
there are the following pieces for each side:
• ♔ — King
• ♕ — Queen
• ♖ — Two towers
• ♗— Two bishops
• ♘ — Two knights
• ♙ — Eight Pawns
3. Board: The board is a set of 8x8 boxes containing all valid chess pieces.
4. Player: The player class represents one of the participants in the game.
5.Movement: Represents a movement with a start and end position. The Move class
also keeps track of the player who performed the move. There are basically 4 types of
moves that can be combined according to the figure:
1. Straight (used for Rooks, Queen and King)
2. Diagonal (Bishops, Queen, King)
3. «L» (Knights)
4. Pawn moves
Note that en passant special moves, pawn promotion and castling are deliberately
ignored for simplicity. Some other restrictions on making a move: a piece cannot jump
over another piece, except knights, and when a piece reaches an enemy piece, it can
capture it and take its place on the board.
To highlight the movements, design an optional colored border around the squares:
• Red — currently selected piece
• Blue — possible destination of the selected piece
7
SORTING & PATHFINDING VISUALIZER
6. Game: The game class controls the course of the game. It keeps track of all the
turns of the game, which player is currently on the turn and the final result of the
game.
7.Rules: Now that we can move the pieces, we have to consider the rules of the
game: there are things that can be done and also things that must be done (typically an
escape check).
It's out of scope to explain every single rule here, but I've tried to implement most of
the restrictions, including:
• Player moves;
• Determining whether the king is in check and, if there is no way out, determining
that the king is checkmate (game lost);
• Both kings are always a square away from each other
OBJECTIVES
● Design and develop a software platform for playing chess, predicting next
move, Next move suggestion, monitoring the voting system.
● Run Simulations and code to compare the results of the designed Beta Chess
Engine.
● Validating the Software to ensure that only the valid moves are allowed.
8
SORTING & PATHFINDING VISUALIZER
REFERENCES
1-https://en.wikipedia.org/wiki/Chess_engine#History
2-https://en.wikipedia.org/wiki/Chess_engine#Limiting_an_engine's_strength
3-https://en.wikipedia.org/wiki/
Chess_engine#Kasparov_versus_the_World_(chess_game_played_with_computer
_assistance)
5-https://chess.stackexchange.com/questions/32379/book-recommendation-for-
chess-engine-building
6-https://www.chess.com/terms/chess-engine#most-popular-chess-engines
7-https://www.youtube.com/watch?v=OpL0Gcfn4B4&t=2432s
8-https://github.com/CSSLab/maia-chess
9-https://github.com/fsmosca/Python-Easy-Chess-GUI/blob/master/
python_easy_chess_gui.py
10-https://news.cornell.edu/stories/2021/01/chess-engine-sacrifices-mastery-
mimic-human-play