Other projects

Over time I’ve written several small projects that are not worthy of their own page, but may still be interesting.

Picross

In February 2020 I made a Javascript implementation of a Nonogram, the classic game where you fill in squares based on the number of consecutive black squares. It can be played here, and the source code is available on Github.

It does not have a difficulty parameter. The puzzle generator is very stupid, and can produce puzzles that practically do themselves, as well as literally impossible ones.

Suguru

In April 2019 I made a Javascript implementation of a game that you may have seen in a newspaper – Suguru, also known as Tectonic. It has about 7000 levels, and a dark mode. It also has an algorithm that can solve the majority of levels.

The game can be played online and the entire source code is also available on Github.

Playlist downloader

Made in April 2020. A very, very simple command-line tool written in C# that simply downloads every video in a playlist from Youtube. Source code is available on Github.

Someforum

With an expertly-chosen name, this is an attempt of recreating the functionality of Reddit, written in PHP in January 2019. It began as a homework assignment to create a PHP program capable of handling logins, but I was far too interested in creating more complex features.

Unfortunately I don’t have the database file anymore, so there is no live demonstration. Not that that would be a good idea anyway. However, the source code is available on Gitlab.

Hexiv

A portmanteau of “hex” and “civ”, this was an October 2019 homework assignment that was supposed to be a playable Civilization clone based on a hexagonal grid. However, I was too concerned with creating a well-written pathfinding system, so the actual game is not exactly… there. But I did end up writing a highly generic pathfinding function, that can be used with any type of path network, not just hex grids, or even grids. The entire source code is available on Gitlab.

Smoothcontroller

Truly an example of my project naming skills, this is a June 2019 school project in which I made a modular system for writing vehicle AI. The entire source code is available on Gitlab.

Currently it only supports cars, but it could support airplanes, helicopters, or what have you. A vehicle is driven by an Actuator, which itself is controlled by Controllers (obviously). In the case of an AI, these are known as Behaviours. A Brain swaps out active Behaviours, which allows more complex behaviour to appear.

There is some communication between Brains, and they are assisted by a Tower, which alerts all Brains when a hostile team member enters its range.

The project contains a scene in which one team is tasked with defending a cube in the center of a large plane, and the other tries to steal it. On the guarding team, DefenderBrains stays close to the cube and shoots at enemies, while AggressorBrains go after enemies, chasing them down well beyond the range of the Tower.

On the attacking team, there is a DistractorBrain, which draws an AggressorBrain away from the cube, there is a KiterBrain which tries to keep DefenderBrains occupied, and there is a CaptureBrain, who goes straight for the treasure.

ChemicalCraft

One of my first major projects, made in October 2016. A mod for Minecraft that was planned to add many different types of chemicals, and reactions between them. In its current state, it adds a multi-purpose block for doing chemical reactions, and adds a way of producing TNT without having to kill creepers, using a realistic chemical process. The source code is available on Github, but, given its age, it wouldn’t be fair for this code to represent my current skills.

AutoMetric

Also one of my first practical applications, made sometime before 2016. This is an extension for Firefox that (attempts to) convert all numbers that are in Imperial units to Metric units. The source code is available on Github… but don’t look at it too much. It is very old, it sucks, has many caveats, and probably doesn’t even work properly. It certainly cannot be used anymore with any modern version of Firefox, as the type of extension has been deprecated long ago.