Home | How it works | Projects archive | Contact Us
Air Compressor Bot
 
The Career Path of Freelance Programming Jobs 

   Hnefatafl

Bidding Time:
02/04/2006 23:57 - 02/05/2006 00:00
Budget:
$30-100
Status:
Closed


Job Type:
Graphic Design, C/C++, Linux
Description:



Banner

I am in need of a Linux programmer to develop a full implementation of
"Hnefatafl" (also known as "King's Table" and "The
Viking Game"), based on reconstructions by various historical societies.
The program should be capable of:
(a) allowing two non-networked players to play a full game, according to the
rules, with all captures taken account of.
(b) allowing a human to play against the computer, either using a custom
game-solving engine -or- an existing Open Source game-solving engine. In either
case, the computer should be capable of reasonably skilled play.
(c) allowing either a human OR the computer to play over the network. There is
an existing standard protocol for networked boardgames and this should be used.
The game's rules are deceptively simple to describe. The board can take one of
five possible sizes - 7x7, 9x9, 11x11, 13x13 or 19x19. The central square and
the four corner squares are reserved solely for the white King - no other piece
may land on them. These are usually referred to as King Squares. Whether any
piece other than the King can even cross over them should be selectable at the
start.
Other than White's King, there is only one other type of piece, that being a
pawn. Unlike the pawns in chess, these can move horizontally or vertically any
distance, with the restrictions given in the prior paragraph and the restriction
that pawns cannot jump over other pawns.
A pawn is captured if an opposing piece (King or pawn) is moved such that it is
horizontally or vertically adjacent to the pawn to be captured AND another
opposing piece is directly opposite and adjacent. A piece cannot be passively
captured by moving between two pieces, nor is it captured if the two opposing
pieces do NOT lie along the same line or they are not directly adjacent to the
piece to be captured. (It must optionally be possible for either side to capture
using a King Square instead of the stationary opposing piece.)
White starts with the King in the center and a given number of pawns. These
pawns are laid out in a way that has four degrees of rotational symmetry. Black
has no king and starts with twice as many pawns as White. The exact layout
should be loaded from a configuration file, as there are many alternatives.
In all cases, Black's victory conditions are to have a black pawn on all four
sides of White's King. The White King cannot be captured by means of the King
Square. Nor can it be captured along any edge.
White's victory condition should be selected at the start and should involve
moving the King to EITHER the center of one of the edges OR to the corners of
the board.
Black always moves first.
In terms of the game implementation, the game should be written with the target
of running under KDE 4 (when a user is present). It should be possible to run
without a GUI when in computer-vs-network mode. The game's coding should follow
KDE programming conventions and norms. The code should also be written to at
least GCC 4.1 (though if you code it to a pre-release of 4.2, that would be
better). If you want to specify other pre-requisites, that is fine but they need
to be (a) Open Source, and (b) not an existing version of this game.
In terms of graphics, I am looking for a 3D rendered gameboard and playing
pieces. I'm not interested in whether there are shadows or not (or even if they
are logically correct if present). Nor am I interested in "perfect"
photorealism. Rather, the gameboard needs to both look interesting and be
playable. Also along these lines, the two sides must be easily distinguished,
along with the White King, and the five King Squares must be clearly marked.
Playability also applies to game performance. It doesn't matter how good the
game is otherwise, if nobody can stand playing it on anything less than a Cray
supercomputer. When it comes to the computer playing, the AI algorithm must be
good enough to match or beat a good player, without sacrificing the playability
aspect. How this is done (eg: multithreading, CPU affinity, real-time
scheduling) is up to the coder.
Feel free to post any further questions on game mechanics or implementation
requirements.

Start your work-at-home career for $7.00. Get direct access to thousands of freelance and home-based jobs. Click here to find work now.

Related Projects:
Website clone
Little flash integration
Ugly Templates Needed (100)
Facebook Clone Project
Parse Feed off Cafepress.com to create Website Display

This project is the proprietary information of . Click here to remove this project from OUR database.
Operating System:
(None)
Database System:
(None)
<<< back

Recent Projects Archive:

Wednesday - Tuesday - Monday - Sunday - Saturday - Friday - Thursday

View all freelance web projects

 
Home | Projects archive | RSS | Resources | Links | Contact Us © 2004-2008 ProjectsList.biz /0.728