Unstable API

Afp
logo Team Unstable API

Description

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

Team Members

Features

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

screenshot.png

*A version with more than 4 lambdas and solvable in 4 more steps(not counting penalties).*

unstab2.png

Requirements

  • Gtk2HS 0.10.0 Library for the GUI interfaces.
  • Quickcheck 2.0
  • GHC 6.10.1 or later in order to be able to build the sources.

Source Code

Game Play

  • 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:
    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


Topic attachments
I Attachment Action Size Date Who Comment
pngpng ChangeN.png manage 3.1 K 07 Apr 2009 - 22:16 TamarChristina  
elsegz UnstableAPI-0.0.3.tar.gz manage 627.0 K 08 Apr 2009 - 11:45 TamarChristina  
pngpng legend.png manage 115.1 K 08 Apr 2009 - 14:07 TamarChristina  
pngpng screenshot.png manage 135.9 K 08 Apr 2009 - 05:26 TamarChristina  
pngpng unstab2.png manage 142.0 K 08 Apr 2009 - 11:46 TamarChristina