PenteTry to win by getting five in a row before the computer does. I used to play pente a lot with my wife when we first met (she is quite good at it). Pente is the first game that I created using my game framework. I first created a Pascal version back in 1991, but this one is better. My motivation has been to make it good enough to beat my wife. The object of the game is to get 5 in a row (horizontally, vertically, or diagonally). As with all the games created using this framework, you can play against the computer, another person, or have the computer play against itself.Pente applet Pente webstart |
|
CheckersCheckers is a simple game. I implemented it in only 2 weekends after I got the pente program running and already established a framework for creating additional games. Capture all of the opponents pieces to win.Checkers applet Checkers webstart |
|
ChessChess is a relatively simple game compared to go. I implemented it in only 3 days - after I spent a year implementing go and the rest of my java game framework. Checkmate the opponent's King to win.Chess applet Chess webstart |
|
GoMany people have tried to make a go program that could beat even an intermediate player. So far none have been successful. There is even a reward of a million dollars to whoever can do it. I don't really expect to either, but my motivation is in making a testbed to try different approaches.The object of the game is to get as much territory as possible. This program still has some problems with accurate scoring. Go applet Go webstart |
|
BlockadeBlockade is a relatively new game created by Lakeside. I used to play it as a kid, but I don't see it in the stores anymore. Each player starts with two pawns on designated spaces near their side of the board. They each have (typically) ten blue walls and ten green walls, which fit in the slots between the grid squares and are two squares wide. A player's turn consists of moving his pawn two spaces and then placing a wall anywhere on the grid. The object is to get one of your pawns around the obstacles being set by your opponent and onto one of his or her starting spaces. It is illegal to block a pawn completely from being able to reach either goal.Blockade applet Blockade webstart |
|
GalacticThis game is loosely based on a game I played on a Comodore 128 back in the 80's. the original game had only text graphics, but was fun to play with friends in the dorm. This version has several improvements: better graphics, robot players, and there are visual indications of fleet sizes and locations. My son loves it.Galactic applet Galactic webstart |
|
PokerThis is basic 5 card stud poker. I may expand it to play Texas holdem and other poker variations in the future. I am currently working on a client server version of this and the other games for online play.Poker applet Poker webstart |
|
Set GameSet is a simple card card played with a deck of 81 cards. A set is 3 cards that are all the same or all different for the 4 attributes: color, shape, texture, and number.Set Game applet Set Game webstart |
|
MazeI orignally made this program to help my 3 year old son control a pencil better. He really enjoys doing the mazes. I hope you will too!Maze applet Maze webstart |
|
SpirographRemember that psychodelic toy from the 70's? Here's a version for the computer, that can do things beyond what that old toy could do.Spirograph applet Spirograph webstart |
|
Red PuzzleThe Red Puzzle (Also Called "One Tough Puzzle" from Great American Puzzle Factory, Inc) is a 9 piece jigsaw puzzle. It is very hard because every piece has four nubs. There are no edge pieces. There are over 300,000 incorrect configurations. This applet will solve it in about 5,000 - 60,000 iterations. It shuffles the pieces so there is a different result each time. The search algorithm tries pieces until it finds one that doesn't fit. If none of the remaining pieces fit after all rotations have been tried, it backtracks one position and tries again. Its guaranteed to find a puzzlePanel if there is one. The letters indicate the shape of the nub: Heart, Diamond, Club or Spade. Maybe someday I will draw the pieces as they really look.Red Puzzle applet Red Puzzle webstart |
|
Sudoku PuzzleA Sudoku puzzle generator and solver.Sudoku Puzzle applet Sudoku Puzzle webstart |
|
Hi-QThis is another one of those games that can be very frustrating without the aid of a computer. The object is to have only 1 peg in the center position when you are done. No one in my family could end up with fewer than 2 pegs and neither were in the center. This brute force simulation takes into account board symmetry and while searching it keeps track of the paths that it has tried and if it ever reaches a position that is has seen before it stops searching because it knows there is not a puzzlePanel by that route. As a result the similation is very memory intensive, so don't be surprised if it runs out of memory. It can take on the order of one hour to run.Hi-Q applet Hi-Q webstart |
|
TrebuchetSimulate a trebuchet. This program uses a physically based model to represent a trebuchet. When my son and I were watching Lord of the Rings, we noticed that Minas Tirith used trebuchets to defend itself. We built one out of lego, but optimizing lego is tedious, so I made this virtual trebuchet in order to try different designs. The trebuchet can also "learn" to move more efficiently by a process of automated optimization. It uses exactly the optimization code I use for improving the performance of the game programs. This is still a work in progress. I need to use constrained dynamics for the projectile's attachement to the sling (instead of a simple spring based restorative force which leads to instability). When done, I hope to build a trebuchet with my son according to the optimized specifications.Trebuchet applet Trebuchet webstart |
|
SnakeSimulate a living snake. The program uses a spring based model to represent the snake. There is a sinusoidal force function applied to each side to simulate muscular contractions. Directional friction is used to make the snake go forward (as happens with a real snake). Snakes have 4 ways of moving: rectilinear progression, horizontal undulatory progression, sindwinding, and concertina progression (rarely used). I only used the most common gait, horizontal undulatory progression, in this demo, but will probably add the others. You can also change the parameters of this gait to get different behaviors. The snake can also "learn" to move more efficiently by a process of automated optimization. It uses exactly the optimization code I use for improving the performance of the game programs. I now understand really well how a snake moves. Based on work by Gavin Miller.Snake applet Snake webstart |
|
DiceI was looking for a good way to explain probability distributions to my son. This simple program illustrates the different sorts of bell-curve (or gaussian) distributions that can arise as you vary the number of dice and the number of sides that they have.Dice applet Dice webstart |
|
Stock Price SimulationThis simulation was motivated by the following problem.You invest $100,000 in a volatile stock. Each year, with equal probability, it either rises 60% or falls by 40%. You declare that your heirs are not to sell the stock for 100 years. What would be the expected stock value (mean) after 100 years? What would be the median? What would be the mode? The expected value would be $1,378,000,000. If there are many stocks like this, the total market value will rise dramatically (value = expected * num_stocks) 100,000 * ((1.6+0.6)/2)^100 = 100,000 * 1.1^100 The mode and the median are both $13,000 (100,000 * (1.6)^50 * (0.6)^50). While on average you expect 10% return a year, the most likely scenario (mode) is that you'll end up with $13,000. Moreover, more than half the people will end up with $13,000 or less. The moral of the story is Diversify! Now you know why you hear that investment advice from the experts so often.Stock Price Simulation applet Stock Price Simulation webstart |
|
Reaction DiffusionSimulate a interaction between 2 chemicals in a reaction diffusion simulation. The program is based on an applet by Joakim Linde. There are 2 chemicals that react in complex ways as defined by a non-linear differential equation that cannot be solved analytically. The simulation solves it numerically.Reaction Diffusion applet Reaction Diffusion webstart |
|
Liquid SimulationParticle based fluid simulation based on Nick Fosters SIGGRAPH paper. Numerical instability (due to a bug) causes this simulation to blow up after a relatively short time unfortunately.Liquid Simulation applet Liquid Simulation webstart |
|
Fluid SimulationDeep water simulation based on work by Jos StamFluid Simulation applet Fluid Simulation webstart |
|
Image BreederUse a genetic algorithm to mix different image processing operator together. The fitness function is the user's evaluation of the images.The program is based on Karl Sim's 1991 SIGGRAPH paper called Artificial Evolution for Computer Graphics.Image Breeder applet Image Breeder webstart |
|
AdventureThis started as a really simple text based adventure. The scenes were stored in an xml file. I thought it would be cool to have images and sounds associated with the scenes, so I added a UI. When editing the xml file got tedious, I decided to add the graphical editor. Next I may add support for keeping track of found items and hit points. This story is based on a adventure in Dragon Magazine back in 1980.Adventure applet Adventure webstart |
|