Here is a list of projects I have done before. Project title links to its github repository page.
Programmable Hanafuda (2020-Now)
This is an independent game featuring programmable rules of the traditional Japanese card game, Hanafuda. Hanafuda is like the Japanese version of Poker, and players need to collect cards that match some conditions/fulfill some patterns to win.
These conditions are called yakus and they have many varients. I designed a script language that allows users to play the game with self-defined yakus, which no one has done before. Along with the language, I developed an interpreter for the language, a game engine, a full graphical interface for the game, and some AIs to play with.
For more details, check the game’s github page.
This is a project created entirely by myself from scrach, except the character illustrations (they were due to my friend), open source libraries and other free resources.
AIs for playing Yahtzee (2021)
Yahtzee is a commercial dice game that has been investigated deeply with the traditional search-based/heuristic approaches, but little research on playing it with machine-learning-based methods exist.
I built Yahtzee-playing programs with both ML and traditional approaches and compared their performance. The ML part was done using Reinforcement Learning with Neuron Networks. For details and some interesting discoveries I found, please refer to the dissertation.
This project was created for the PartII Project in the Computer Science course at the University of Cambridge.
OCR Application for hand-writing notebooks (2020)
This is a piece of software created for the Cambridge University Museum of Zoology. The museum has a huge collection of 100-years-old notebooks that records data about local butterflies.
These notebooks need to be transcribed on computers and it was done with hands by staffs before. I and my teamates helped to develop an application that does this job automatically with OCR.
My part of the job was designing and implementing a user-friendly interface for the application, since museum staffs are not very good at computers.
This project was created for the PartIB Group Project in the Computer Science course at the University of Cambridge.
Maze on FPGA (2019)
A maze game created for the second optional tick of ECAD labs.
The code runs on Cambridge FPGA board, with support of CLARVI for running c codes.
The code of maze generation is due to Joe Wingbermuehle.
You can find a link to a demonstration video on youtube here.