Picture of the tutor Carlos Castillo's face

Carlos Castillo

Projects I've worked on

Frogger game

This program is a game that plays like the popular game "Frogger" It involves the player (a frog) having to cross through several streets of traffic (cars) and some paths of grass. After surviving that, they have to cross through a river full of logs that are moving along the water. The frog can traverse using those logs and reach several caves which are the destination goals. Each cave rewards points and in addition there is a dragonfly that moves very fast but if it is caught by the frog then bonus points are rewarded. If the player loses all their lives, they can submit their score to the leaderboard and end the game or restart it. I used Python and the Pygame library to make this game, it was a very fun experience.

Azetude game

This game utilizes JavaScript and the Phaser HTML5 game framework. This clone game titled "Azetude" is based on the 1972 classic "Pong" but with an alien/UFO/outer space theme. This web app game supports keyboard arrow keys as directional movement and the mouse for clicking on elements only (I may return to add paddle mouse and touch controls in the future). Click here to play the game!

Global Consulting Scheduling Services App

This application provides a directory from which the client can select customers, appointments, or reports to view. In addition, the app enables the client to add, modify, or delete any customers or appointments. There is extra filtering options to view appointments by current month or current week. The reports are divided into three different reports, one that shows appointments by any month or any type, one that shows the appointments of the trusted contacts, and a final one that shows how many customers the company has within divisions and countries. This application will allow the company to do all these operations efficiently and clearly and they can maintain their database of customers and appointments without worry of losing any of it when the application closes. This project uses the following application technologies: JavaFX, IntelliJ, MySQL, Scene Builder.

Video Game Recommendation App (Machine Learning)

This Jupyter Notebook application utilizes the popular K-Means cluster algorithm to generate fast and accurate game recommendations. It allows you to input a game you've played into a search bar on a custom user interface. Afterwards, it generates a column of several games which are the recommendations. Recommendations have matching game genres and fall in the same range of game ratings. Besides game recommendations, the K-Means algorithm is shown in a scatterplot visualization that includes the clusters of games taking into account the genre, rating, and year of release. In addition, the application also features a screen that displays a pie chart of how many games fall into each rating and a bar graph that details how many games belong to each genre. This project uses the following software languages/tools: Python, Jupyter Notebook, Pandas library, Matplotlib library.

Package Delivery Routing App (based on Traveling Salesman Problem)

In this project, I used object-oriented programming for many important entities such as packages, trucks, and mailing addresses. I created classes with objects to represent each of those entities (package, truck, mailingaddress). I also created a class for my chaining hash table data structure which would hold all package information. Next, I created several helper functions to read CSV file data for addresses, distances, and packages. Then, I created the core functions which loaded the trucks with packages, found the distance between addresses, delivered each truck's packages, and calculated the minimum distance between addresses. Finally, I created and used a few functions that would print the information of a single package or all packages. A main menu was also included to allow the user to decide if they want to show the status of one package or all packages. All the status information would be printed through the few functions that are responsible for formatting the output to look neat and organized.

Career Advisor Chatbot (AIML)

The chatbot is a career advisor for computer science students. The human career advisor has become too busy with the increased enrollment of students and developed the chatbot to handle large quantities of students. The chatbot will interact with students to find the proper jobs that fit their strengths and preferences. The chatbot allows a student to type in their name and then the bot provides a varying number of questions to the student. The first question includes three choices, two of them contain follow-up questions and the last one doesn’t. All the questionnaire paths end up leading the students to one of five different computing jobs as their ideal job. The student is provided a link to a website that explains what the job entails. I used the AIML language (that documentation was very useful, no seriously!) to do this project which is active on the pandorabots website. I had a lot of fun with this one. I will most likely create a new chatbot project in the future and implement it into my own website or integrate it with facebook or discord.