Projects

TBS 2 (Beta)

My most recent project, TBS 2, is a complete rewrite of my first ever personal project TBS. In this version, I am attempting to apply everything I have learned since coming to UT. I have added AI opponents, much more advanced/improved map generation, and a host of other features that were not present in the original project, all on top of improving the original ones. Oh, and there is actually decent art this time around. In this version you can also clearly see where the inspiration I had for this game comes from, Advance Wars. None of the code was taken from the original version, this is all entirely from scratch. The project is still not complete but feel free to clone the github repo and run the project (using launcher.java) yourself. I hope to have this project complete by the end of the school year. I have also began creating a set of JavaDocs for the project. These can be viewed at the link below. Do note: the docs are still not complete and will be a work in progress up until the end of development, though most things should be staying the same.

TBS2 TBS2

GPA Calculator

After getting tired of putting in my courses over and over again on the registrar's webiste, I decied to hack up a program in Java that would allow me to easily calculate my GPA, store a record of my classes/grades, and dynamically add and edit classes to predict my future GPA. The program reads in two files, a config file that defines what different letter grades represent, and then a file containing a record of all your classes. I then use the data to create a linked hash map between class names and their grades. By using Java's built in linked hash map, I'm able to preserve both O(1) lookup and insertion order. Although the lookup is not super important consdiering no reasonable user would ever have more than 50 classes, it's still a nice thing to have. The program also has the ability to save new classes back to the grade report file. To accomplish saving, I stored the initial file in a buffer. By doing so, I was able to write any changes back to the buffer, add new lines to the buffer, and then simply write the buffer back to the file.

gpa_calc

HackTX 2013: UTCS Companion App

In September 2013 I participated in HackTX. While there 2 of my friends and I began work on a Windows 8 application to be used by UTCS students. This app would allow students to see what computer are open in the lab and how much they are being used. It also allowed for the monitoring of various printers in our building. We have plans to continue working on the app in the coming months.

app pic 1 app pic 1

Android

I first learned how to make Android apps during my summer between junior and senior year of highschool as a partcipant of a local IBM summer camp. After attending that camp, I continued to explore Android development during my free time as teacher aide. All total I wrote three different apps, two of which, Pressure Calculator and Text Encoder, were learning exercises for myself, with the third, Patterns, being a full featured (although simple) game, which is stil being updated to this day. You can download/find more info about all the apps by visiting their Google Play pages (links below).

Patterns

Patterns was the last app I wrote and I still push out updates during my free time. Most recently I've created an automated backend that replaced a faux-hacked together backend for a leaderboard feature I had introduced last winter. Below is a quick video I found from when I was first developing the app. It's about 20 seconds long and consists of me using my phone to capture what I think was me accomplishing the appearace of a random pattern of squares. The app has come a long way since then, feel free to check it out on Google Play.

Text Encoder

Text Encoder was the second of two apps I created for the sake of expanding my Android skills. Text Encoder takes in a user's input and then "encodes" said input using a self defined hash function. This hash function can also be supplied with a "keyword" that allows for further custom encoding by the user.

Pressure Encoder

Pressure calculator was the first of two apps I created for the sake of expanding my Android skills. I originally created the app to use for physics class when we were studying pressure. The app allows the user to select a planet (gravity), a liquid to simulate submersion in (density), and then a depth (height). The app then calculates the pressure at said depth.

Other Projects

String Encrypter/Decrypter

I wrote this program on back in April since I hadn't written a Java program in a while and wanted to do something quick. I decided to refresh my binary search and merge sort skills so I wrote this program which uses both. First the program loads a list of the most common english words and then takes in an encrypted string from the user as input and tries to find out what the decrpyted version is by searching the dictionary. The encryption method tested is very simple. First the string is changed to lower case and then all alphabetical characters are shifted a designated number of places to the right ('a' shifted three = 'd'). The string is taken through all possible shifts (0-26), and each length of shift is given a score based on how many word matches were found. The shift with the highest score is then presumed correct and presented to the user. You can use Decrpyter.java to decrpyt strings and Encrypter.java can be used to give you encrypted strings shifted n length.

World of Tanks Replay Manager

This is a program I wrote early in the Summer of 2012. It was my first experience creating GUI in Java. I ended up using NetBean's Java GUI builder for the actual GUI elements, and then added in the program's logic in Eclipse. The program allows a user to "manage" replay files for the video game World of Tanks. They can tell the program where to look for replays/save that location as a preferance. They can also write a description about the replay which can then be saved. Note: the program may not work with newer replay files, it has not been updated recently. To see true functionality use the provided files from when the application was first written.

WoT Replay Manager

2D Java Turn Based Strategy Game

This program is a simple turn based strategy game written in Java. I wrote it during the winter of 2011/2012. All the artwork was done by me. The goal is simply to destroy the other team. One nice feature is the ability to create custom maps using an editor I also wrote for the game. Once you make the map, you can have the editor give you the "seed" which you can input into the dialog box that appears when starting the game.

Java TBS