Java Projects

Since the Software Engineering I course at Politecnico di Milano, I had different work oppotunities using java. The most interesting of these was undoubtedly the 50-hour java course I held for regione Lombardia. That was a sort of a starting point for all my next java projects.

Unfortunately, last year my hard disk broke, and my brother deleted my home backup. This means I lost almost all projects I had developed! Luckily I had some copies of a bunch of them scattered on the net. In the following I present what was left undamaged.

Gravity Wars

This is one of the funniest pieces of software I have ever written. It is a clone of the classic game Gravity Wars, in which a couple of starships fight while being attracted by the gravity of a star centered on the screen. This is a 2-player game, since AI was never developed even if was high in my todo list. The graphics of the game are quite simple, but they are completely rendered real time by drawing polygons on a double buffered screen. Each player moves using different keys (cursor keys + keypad zero for first player, wasd + space for player two) and has to destroy the ship without being hit or falling into the central star. The player must also take into account its fuel tank, otherwise his engines will stop.
The game is completely configurable (star mass, ship mass, rocket power, etc.) by pressing the P button.
It is interesting how bullets have a mass and are attracted by the star: this may be useful to change their trajectory and hit the unsospecting player ;).
You can play the game here (press enter to start after the applet is loaded) or download its source here.

Il Labirinto di Cnosso
(sorry but the program is in Italian only)

This is a small program to show how to draw mazes and how to solve them with a simple depth first algorithm. I did this to help a couple of friends of mine pass a university exam. This program is implemented like a game: you start on a side of the labirynth and have to reach the minotaur on the other side. The maze is randomly generated and its size is configurable. You can also save each maze and your progress in it, and reload it to complete the quest later. If you're stuck in a maze you can ask the program to show the solution.
This game can't be played online, and can be downloaded here.

Astatosta v1.0

This was a project I developed for the Software Engineering one exam, it consists in a copmlete client server solution that provides real-time auction funcionalities. It consists in three parts: a server that stores auction objects into a database and handles their current price, new offers, auction start and auction end; a client that lets people connect to the server, see current auctions and place their offers; an administrator client, that lets the auction server owner to manage objects, starting prices, auction duration and admitted clients. The screenshots shown are taken from the client side, and are the most colorful that could be taken ;).
This work has been done in collaboration with two other peope: Luca Lopomo and Nicolò formenti. It got the highest rating and owed me a 30/30 summa cum laude mark for the exam.
The deveoplment followed strict software engineering guidelines, ending with almost 200 pages of documentation! Unfortunately, its complex installation procedure does not let me put it entirely on the site (it needs a database for instance), but I can put the client here, just for your curiosity.

Miscellaneous Programs

I also made a series of miscellaneous java programs, from image viewers to flashing text applets that were used to teach java to my students for the course I held for Regione Lombardia. You can have a look at this programs, even if they do not have any practical use. They are divided into six zip files, each containing the exercises used in a lesson.
The files are Lezione1, Lezione2, Lezione3, Lezione4, Lezione5 and Lezione6.