Simeng Yang's Projects
HoloLens Pathfinding Demo
An autonomous Skittle dispenser for allocating Skittles into separate bins, with motors, an RGB sensor and 3D-printed components. Programmed with Arduino.
The world of fairies and flying metal machines
Entry in the the [Kaggle Ludum Dare Prediction contest](https://www.kaggle.com/c/cs480-spring2020/overview)
For a maze loaded from an external text-file, this program will show the sequence of positions to reach the goal or, if there is no solution, will indicate that no path is available.
Example of using inheritance and polymorphism with 8 various classes. Use of classes exemplified through story-based text progression, in which an otherwise peaceful town is ravaged by wolves. Citizens can make small talk and pay taxes. As in real life, citizens are expected to hold jobs, which is represented by a Job class. Classes are implemented in separate .h header and .cpp source files. There are two base classes - Citizen and Wolves, with Citizen having child classes Human and Others. Human and Others have their own respective derivative classes, including Vampire, Nobbs, Zombie, Troll and Dwarf. Furthermore, the Werewolf class exhibits multiple inheritance with respect to two parent classes, Human and Wolf, a feature more unique to C++.
Programmed on an 8x8 LED matrix with use of an Arduino microcontroller. Switches act as button-controllers to move paddles for two players. Buttons can be used to change direction of paddle through rapid clicking, subject to a time threshold. Modifications in code may be necessary for different configurations of anode and cathode pins into matrix. Attached is an Excel spreadsheet for setting up and troubleshooting various patterns of LEDS in terms of the corresponding pin states.
Re-Vim'd is a lightweight implementation of classic Vi editor using C++.
Programs runs through various sorting algorithms and tests their execution times over various sizes of data sets: 1. Selection sort 2. Bubble sort 3. Merge sort 4. Quick sort 5. Bucket sort. Attached is an analysis of the efficiencies of tested sorting algorithms, the raw data and test results.
Students and administrators can add new student records. Administrators can securely retrieve and delete student records.