Projects
Stone Age Online

Stone Age Online is a web-based, 2D, multiplayer online game that is free to play. The game is set in the medieval times and the players can create and shape the world around them. Roads can be built, villages formed and houses can be constructed to store posessions. Farms and forests can be planted and looked after, and the land itself can be terraformed. There are several skills to choose from, a large map to explore and plenty of features to keep players busy.
The game is free to play and also features a forum, chat room, private messaging features and access control management for your own properties and villages.
Spellwind

Spellwind is a simple, easy-to-use, free MUD client for Windows based around next-generation technologies.
JTerminal
JTerminal is a Swing component that emulates a VT100 terminal. It is very easy to integrate into a Swing application, a small snippet is shown below:
JTerminal terminal = new JTerminal(80, 25, 25);
terminal.print(((char) 27) + "[33;41mHello, World!\r\n");
JFrame frame = new JFrame("Sample App");
frame.add(terminal);
frame.pack();
frame.setVisible(true);
Unlike other VT100/ANSI terminal components, JTerminal does the bare bones so you can integrate it easily and flawlessly with your own application.
JTerminal is available under the terms of the MIT license:
/* * JTerminal * * Copyright (c) 2009 Graham Edgecombe * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */
Java IRC Framework
The Java IRC Framework is a small API designed to assist in the creation of IRC clients and bots. There are two ways provided to interface with an IRC server: the IrcClient class which provides a low-level interface to IRC, and the IrcApplication class which provides a higher level interface with channels, messages and users managed for your application.
snappy-ircd
snappy-ircd is a small, basic, and incomplete IRC server written in Java. It is completely unsupported, bad in some places, and released under the MIT license. Download it at your own peril!
Combustion Analysis Calculator
The combustion analysis applet will attempt to perform combustion analysis calculations automatically: you enter the mass of water and carbon dioxide released during combustion and it will attempt to find the emperical formula of the hydrocarbon that burns.
The emperical formula may be incorrect in some places due to rounding errors: it can only round to 0dp. This means if you had the ratio:
0.751238945 : 1
It would be rounded to:
1 : 1
I did not attempt to fix this issue as the work I was doing did not need the functionality but bear this in mind if you use it. You should check all the working it produces yourself.
Open the combustion analysis calculator.
Cluedo Solver
The Cluedo Solver is a Java application that will take input on the happenings of the game and remember everything that happens during the game. It can then use this input later on to make deductions and find out which three cards were the murder cards.
This gives it lots of advantages over traditional human players who without a clever system could probably not process all this information.

