image source: www.theverge.com
Programming Portfolio

HTML and CSS

This Website

This website was the first real HTML project that I've taken on and the quality of this website is a good reflection of my own abilities in web development. I hope that as my HTML skills improve, those improvements will become apparent in the quality of my website.

This Page's Color Picker

Click one, I dare you

Chrome Extensions

QuadCalc

My first, fully developed chrome extension. It solves the quadratic equation for its user. After asking for three inputs about the equation to solve, the program does the entire calculation and displays the roots of that equation.

Random Selector

This is an extension I made with Morgan and Colin that selects a student or item randomly from a list that the user creates.

General Python

Web Scraper

As a part of my IB Computer Science Course, I built my own webscraper that could detect changes on a webpage. Instead of focusing on one website for my Web Scraper to work on, I tried to make it as general as possible so that it could function on any page. The scraper does this through two steps. First, it takes the ENTIRETY of the particular websites's HTML and converts it into a single string. From there, it counts the characters to see if the website's structure itself had changed. Secondly, it goes and finds the first paragraph tag within the website and analyzes any changes to that. A later update to the program also incorporated the "Twilio" module to send a mobile message to the user's phone when a change is detected.

Pygame

TRON

A recreation of the old arcade game, TRON was my first large project through pygame. The game features both a one player and two player mode. I created an AI (a generous title) for the computer player in the one player mode. It works by detecting it's relative distance to the walls and each of the player's lines, thereby avoiding each of them and staying alive for as long as possible. Besides the code, I also spent a considerable amount of time on the visuals and theme, which overall made the game much more appealing. For reference below, the blue line is a player and the orange line is the AI that I created for the game.


BattleShip

Based completely on the board game, Battleship is a one or two player game where each side is trying to sink all of each other's ships. I built another AI for this game and unlike the TRON AI, this one functioned with strategy. Upon finding a ship, my AI would focus in on that general location on the map and sink that specific ship. The game has multiple windows including a title page, a help page, a setup page where each player can place their ships, and the actual game page. The game also has added themes that the player can choose from.

Conway's Game of Life

A misleading name, Conway's Game of Life is actually a mathematic/biological simulation reflecting the growth and death of populations. On a grid system, each individual grid is an organism whose sustained life or immediate death is based on its number of neighbors. Along with creating my own custom algorithm for this simulation, I also added a bunch of preset patterns that I can create on the grid, many of which are shown below. I found that allowing the patterns to loop around the screen required a lot more processing speed and so I added the "borders on" setting to allow the user to turn that capability off if they want the program to run faster.

Chase

This was actually the first game I made, though it was sort of basic and not much happened and so I don't put it at the top. Anyway, chase was a simple "snake" like game where you try to pick up the white circles without dying. There's perpetually a green square out to kill you and blue squares build up throughout the level to make it harder.

Langston's Ant

Another simulation. In this one, an "ant" (the blue dot on the screen) travels around the grid. When the ant steps on a grid space, it uses a preset pattern (given and changable along the side of the program) with which it both changes the color of that grid square and also moves in a certain direction. For example, for the first part of this video below, when the ant hits a black square, it changes that square to white and turns left. When it lands on a white square, it changes that square to red and turns right. This is not the only combination of movements and as mentioned above, the menu on the right can be used to change the ant's algorithm.

Ideal Gas Law Simulation

This is a project I did for my Computer Science IA where I built a simulation visualizing the ideal gas law for a physics teacher. The program allows its users to choose two variables to manipulate and then shows the relationship between those two variables.

Game Maker

"Get to Class"

A game I made for another one of my computer science courses. My game was about my character's unrealstic race to get to school before he is expelled for being absent too long. The game features a variety of different levels, such as a platformer game, a submarine-style level, a scrolling shooter level, etc. Many of these levels are shown below.