Java
RandomMP3s
A quick program that I wrote because I was unsatisfied with Windows Media Player's ability to fill
an MP3 player with random music files. (The main reason when I began writing this was I noticed that
music transferred to the player slower than it should).
This program allows a user to add music files (individually, and by directory) to a main list. Then,
the attached MP3 player (assuming Windows sees it as a hard drive) can be cleared, and reloaded
with random music up to the player's capacity.
So basically, with this program and a small MP3 player (e.g. 512MB/ 1GB), it's easier to keep
the music on the player "fresh." Opening this program and clicking one button will refresh the
music on an MP3 player that Windows recognizes as a drive in My Computer.
Download (JAR - JRE required). Includes source.
FoldSim
From the report:
The problem was to write a program to determine all of the ways that a protein can fold in 3D,
and then find the most “stable” shapes out of all the possible ones. In this simulation, a protein is
represented by a chain of amino acids, where each amino acid is simply designated as H or P. H
means hydrophobic, while P means hydrophilic. The most stable state is that where there is a
maximum number of adjacent Hs, that are not physically bonded.
Project Report - Download
Final Project - Download
MSBilliardComputer
From the report:
The problem was to simulate a quantum computer logic gate (Fredkin classical reversible logic gate) using a billiard ball model. In this model, there are bumpers in specific places on the "pool table," resulting in a combination of 3 input "balls" to end up at 3 predetermined places. The Fredkin gate is simple: If you start with 0 or 1 balls, they end up at the same y position they started from (i.e., according to the diagram, A ends at A', B ends at B', C ends at C'). If both A and B are present, or A and B and C, they end at their respective positions. However, if C and A are present, A ends at B'. Similarly, if C and B are present, B ends at A'.
Project Report - Download
Final Project - Download
MSWorld
MSWorld is an adaptation and extension
of the java maze raycaster.
Basically,
the following are the changes and improvements over java maze:
* Variable size maps
* External map loading (maps are created with Tile Studio, from
http://tilestudio.sourceforge.net
)
* Single-color floor/ceilings only - the floor mapping support was somewhat
broken, especially when I added variable size maps.
* Extreme restructuring and modularizing of the code. This is the basic
structure now:
Raycaster interface->Raycaster256 implementation (is-a Raycaster)->MSWorld main
program (has-a Raycaster256)<-client simulations
* Client simulations with dynamic class loading, the most notable improvement.
I wrote several simulations to implement basic artificial intelligence in enemies
in the maze, such as "blind" pathfinding, tracking by waypoints, and using the
A* pathfinding algorithm to find the shortest path from a start point to a goal.
Basically, you could add whatever "gametype" you want to MSWorld as a
simulation.
Original Proposal
Midpoint Summary
Final Project - Download
© Malcolm Smith