This page will eventually contain information about our group project for the course Advanced Functional Programming which is given in block 3 at the University of Utrecht in the netherlands
We tried to implement as much as possible in the allotted time.
The commandline flags are
Usage: Client.exe [OPTION...]
-P --port= set the server port number
-S --server= set the server host name, default is localhost
--chat, --AllowChat enable chatting (NOTE: Client and server must support this in order for it to work)
-v --verbose set verbosity
--noverbose set verbosity
)
Usage: Server.exe [OPTION...]
-P --port= set the server port number
-T
Detailed Instructions will be uploaded later.
Screenshots
*A version with more than 4 lambdas and solvable in 4 more steps(not counting penalties).*
In order for extentions to work, They must be explicitly enabled on the server. Doing thing will make the server no long accept normal clients.
When playing, You can always undo your last move by going to the tile you came from. The client will automatically remove that last step from your Solution list.
Click to select lambda to move, The area you will move in will be highlighted for you. Click again in the area you want to move and you will be moved to that spot.
Watch the Gui, When the status is anything but Active, the board will not respond to user input, but instead the use of the left controls panel is require. Or just simply wait.
Alot more is implemented at source level then is drawn on screen. (Mainly due to time constraint).
Design Decisions
Gtk2Hs? is really buggy, but we've worked around most of the problems
We use a tile based renderer, i.e. we render only 1 cell at a time
We've converted our client to always render in an internal format which is none standard, This format is used when in extensions mode. (hence the new commands in the protocol)
When running extensions, client with extensions not supported will be declined
We decided to support the Mathematical Style Axis in our game, so (0,0) is Bottom-Left
Play Instructions
Start by typing in a desired nickname in the client. And hitting connect. (this nickname is saved and reloaded automatically for you the next time)
Wait 60seconds for the server to finish finding more players
Make your bid
Show your solution and submit.
There are board extensions available like teleporters,direction changers, solution path count modifiers and transporters.
At the end of the game, the solution is played back, but the game starts to quickly to be noticed. For that reason, the solution is written to file under the name -randomnumber.png
legend.png:
Install Instructions
A cabal file is included along, so just do the usual
runHaskell Setup configure
runHaksell Setup build
to generate documentation
runHaskell Setup haddock --executable
NOTE: If you're not compiling using the cabal file, you must compile both the client and the server using -threaded
The Subversion for this project is not yet open to the public. But the url is:
Unstable API Subversion