Vadim.Work

This page brings together all the apps I've developed for "AI In Games", "Computer Environment", and "Computer Graphics" courses at DigiPen Institute of Technology, Singapore. Feel free to explore and embed any apps that might be useful for your educational purposes. And don't hesitate to contact me if you have any questions or requests - I'm happy to help! You can reach me at vadimsurov@gmail.com.

Games

Lines
Objective of the game is to arrange color balls in a straight lines while three new balls come on every turn. Lines of 5 or more balls of the same color are eliminated, adding to the score. A ball can be moved to another location only when there is a path not obstructed by other balls. Different techniques can be used to show the player where a selected ball has a path to.
Tic-Tac-Toe

Well-known game for two players, who take turns marking the spaces in a 3×3 grid. The player who succeeds in placing three of their marks in a diagonal, horizontal, or vertical row is the winner. In this version you play the game with AI as your opponent.

Battleship
This is a strategy type guessing game for two players. It is played on ruled grids on which each player's fleet of ships are marked. The locations of the fleets are concealed from the other player. Players alternate turns calling "shots" at the other player's ships, and the objective of the game is to destroy the opposing player's fleet.

Puzzles

Sudoku
Sudoku is a logic-based, combinatorial number-placement puzzle. In classic sudoku, the objective is to fill a 9×9 grid with digits so that each column, each row, and each of the nine 3×3 sub-grids that compose the grid contain all of the digits from 1 to 9.
Sliding Puzzle
Objective of the game is to move the numbered blocks around until they are in numerical order.
Genetic Algorithm

2 examples of using the genetic algorithm.

1) N-Bits: Given a set of 5 genes, each gene can hold one of the binary values 0 and 1. The fitness value is calculated as the number of 1s present in the genome. If there are five 1s, then it is having maximum fitness. If there are no 1s, then it has the minimum fitness.

2) 8-Queens Puzzle: The problem of placing eight chess queens on an 8×8 chessboard so that no two queens threaten each other.

This genetic algorithm tries to maximize the fitness function to provide a population consisting of the fittest individual

Simulations

Game Of Life

The Game of Life is played on a grid of cells. Each cell can be either alive or dead. The status of each cell changes each turn of the game depending on the statuses of that cell's 8 neighbors. For each iteration of the simulation, a cell's status in the next iteration is determined by a set of rules.

Pathfinding Demo

This is an illustration of Dijkstra's and A* searches for finding path from a start node A to a goal node B in a motion planning problem.

Pickup And Delivery Simulation

Objective of the simulation is a dispatching of a vehicle in real time in order to serve customers requesting transportation of goods or passengers from one location to another. (In general, you can have more that one vehicle and each vehicle can serve more than one request at the same time.)

You have 2 tables that are adjacency matrices with costs: the first shows costs of driving the vehicle between locations named A, B, C, and so on, the second shows an existing order for transportation with the delivery price tags. When a request is arrived, you can calculate the cost and then accept it or decline. If the request is accepted the order is created. It takes some time to your vehicle to process it and then the difference between the cost of driving and price of delivery is added to your account as a revenue. After having enough balance in your account you can buy more vehicles to expand your business.

Weapon
In this demo application the Fuzzy logic is used to determine the desirability of a weapon.
Travelling Salesman
You are a traveling salesman that must visit every city once and then return to the starting point A. The goal is to find the shortest possible route that accomplishes this.
Bellman-Ford's Search Quiz
Simulation of the Bellman-Ford's search for learning and teaching
Floyd-Warshall's Search Quiz
Simulation of the Floyd-Warshall's search for learning and teaching

Question of the Day (Computer Environment)
Various questions from the Computer Environment course. Can be used on a daily basis as small exercises to perfect skills and technique on such problems like binary number conversion, IEEE754 standard, boolean logic.
Logic Gates Visualization
This tool lets you visualize Boolean expressions using logic gate symbols and connections. The result provides a clear picture of how signals are transmitted throw an interactive diagram.

Question of the Day (Computer Graphics)
Various questions from the Computer Graphics course. Can be used on a daily basis as small exercises to perfect skills and techniques.
Midpoint
Help for learning the most efficient algorithm for drawing a straight line on a raster screen
Pipeline
Spreadsheet all transformation of a vertex from model space to device space
Grading Student Assignments Using a Questionnaire
Set of tools in helping of gradig students Assignments

Assignment 1 (DFS and BFS)
Unit tests for an assignment in the AI for Games course
Assignment 2 (Flood Fill)
Unit tests for an assignment in the AI for Games course
Assignment 4 (A* Search)
Unit tests for an assignment in the AI for Games course
Assignment 5 (Bellman-Ford Search)
Unit tests for an assignment in the AI for Games course
Assignment 6 (Backtracking)
Unit tests for an assignment in the AI for Games course
Assignment 7 (Minimax)
Unit tests for an assignment in the AI for Games course
Assignment 8 (Behavior Tree)
Unit tests for an assignment in the AI for Games course
Assignment 9 (Fuzzy Logic)
Unit tests for an assignment in the AI for Games course
Assignment 10 (Genetic Algorithm)
Unit tests for an assignment in the AI for Games course