Mark Lee's Projects
A clone of 2048 with an AI
Generates and solves sliding 8-puzzles using A* pathfinding. Generalized to work for n-puzzles.
Implementation of the AC-3 algorithm for constraint propagation in TypeScript
My final year project for CS at Strathclyde, algorithm visualisers for backtracking, pathfinding and minimax.
Changes to my final year project intended not to be marked. This is just out of personal interest. Algorithm visualisers for backtracking, pathfinding and minimax written in Angular.
A quick HTML5 Canvas script for drawing binary trees. Plan to extend this for visualising different tree based data structures and algorithms
Really simple bare-bones implementation of a blockchain using SHA-256 encryption. Plan to add more features later.
An app that lets you play against a simple configurable chess engine. The engine itself is still a WIP, in that it's just basic minimax + alpha beta pruning and doesn't yet use any of the more advanced techniques.
A backend for a chess game in a functional style, mainly as an exercise for learning Scala
A simple chess engine written in Haskell.
Allows a user to play against a chess engine written using minimax with alpha beta pruning. Front end is written using Swing. Front end and back end are linked using MVC with the Observer pattern.
Basic implementations of computational models in TypeScript
A simple two player connect 4 clone
The 2020-21 Edition of CS316 "Functional Programming" @ the University of Strathclyde
Docs for the main features of the codebase for my final year project: "AI Search Algorithm Visualisation"
Just another game of life simulator
Visualiser for a resizing hashtable with linear probing. Written in vanilla TypeScript.
Visualises a resizing open addressing hashtable using either linear or quadratic probing
Examples for my book, “Hello, Scala”
A simple chrome extension for hiding links on pages
Rebuilding my minesweeper game, mostly to learn Angular
A simple minesweeper clone
Minesweeper with an optional AI that solves the game algorithmically
Visualises minimax with alpha beta pruning on a simple tree diagram using HTML5 canvas.
My solutions for Structure and Interpretation of Computer Programs in Haskell for Sections 1 and 2 and JavaScript for section 3
Visualises the application of backtracking, brute force, and forward checking to the N-Queens puzzle.
Some examples and commentary for OOP design patterns, mainly for teaching myself
A quick tutorial on the concepts surrounding pathfinding to complement my visualiser
Pathfinding visualiser that shows the tiles the algorithm explores and the final path. Can manually add and remove walls or generate them automatically. Can also toggle the speed.
Visualises multiple pathfinding algorithms on a 2D grid