You are on page 1of 3

CSSE-006

1. Project Title
NetFish: a multi-player card game.
2. Aims of the Project
The aim of this project is to design, build and test a system that enables two or more players
to set up
and play a go fish card game over a local area network or over the internet.
3. Basic Tasks & Deliverables
In order to be considered for a pass at Third Class Honours standard on this project,
a student must
give evidence of having adequately attempted to:
specify a basic two person Go Fish game system for play over a LAN, with a basic user
interface, using a suitable design notation (for example UML)
produce a programmed system that implements the specification
devise and execute an appropriate test plan
AND must have produced:
System specifications / design documents
Program source code
A working program
A test plan
Test results
A student who wishes to get a higher grade will need to extend the project beyond this basic
level (in
both quantity and quality).
4. What we will be looking for when assessing the project for a pass
Appropriate choice and use of
tools and techniques for specification and design
tools and environments to implement a programmed solution to the problem
programming techniques
mechanisms for connecting and communicating between machines on the same LAN
(such as
sockets or remote method invocation)
Evidence of adequate quality specification / design.
Coding & commenting that conform to an appropriate set of conventions.
A fully functional program that allows two players to play Go Fish over a LAN
5. Skills that will be required
Program Design / Programming
Specification Writing (formal, semi-formal, structured)
Program Testing
User Interface Design / Interface Programming
Network Communication / Network Programming
6. Specialism (if any)
Software Engineering
or General Computer Science
7. Pre-requisite modules
Students undertaking this project will be expected to have taken the following modules or
their
equivalent, and the assessment of their work will be based on this assumption:
FOOD A
2
The following modules may also prove useful:
CNPA A
8. Background to the problem

Go Fish is a card game that usually played by children or by family groups. The game may
be played
with a single standard deck of cards (see box below) or, where there are very large numbers
of
players, with two decks. The rules are quite simple:
This game, often just known as Fish, is best for 3-6 players, but it is possible for 2 to play. A
standard 52 card deck is used. The dealer deals 5 cards to each player (7 each for 2
players). The
remaining cards are placed face down to form a stock.
The player to dealer's left starts. A turn consists of asking a specific player for a specific
rank. For
example, if it is my turn I might say: 'Mary, please give me your jacks'. The player who asks
must
already hold at least one card of the requested rank, so I must hold at least one jack to say
this. If the
player who was asked (Mary) has cards of the named rank (jacks in this case), she must
give all her
cards of this rank to the player who asked for them. That player then gets another turn and
may again
ask any player for any rank already held by the asker.
If the person asked does not have any cards of the named rank, they say 'Go fish!'. The
asker must
then draw the top card of the undealt stock. If the drawn card is the rank asked for, the asker
shows it
and gets another turn. If the drawn card is not the rank asked for, the asker keeps it, but the
turn now
passes to the player who said 'Go fish!'.
As soon as a player collects a book of 4 cards of the same rank, this must be shown and
discarded
face down. The game continues until either someone has no cards left in their hand or the
stock runs
out. The winner is the player who then has the most books.
John McLeod, Rules of Card Games: Go Fish, Authors, Happy Families, Quartet,
http://www.pagat.com/quartet/gofish.html (downloaded 16 July 2004)
Further details of the game may be found on many web sites and in any good book of card
games.
There are a number of variants of the game, and there are also closely related games such
as Happy
Families (which is played with a special deck of cards).
A basic two-player Go Fish game which may be used as an example is implemented in the
program
Mikes Cards, available from http://www.mikesedore.com/mikecard.html
9. Requirements
Functional requirements for the Basic Game
The program(s) should:
allow a single user to play against the computer in a two-player game on a single standalone
machine;
provide a client-server or peer-to-peer system that enables a player running NetFish on
one
machine to connect to another machine running NetFish on the same network (at the basic
level the connection process may be performed manually by entering an IP number, or else
it
may be mediated by a server);

enable two people to play a game of Go Fish (7 cards dealt to each player) over a local
area
network, with each user playing on a separate machine, and without the need for an
additional, separate, server machine to mediate communication during the game;
keep game statistics, such how many games the player has played, and how many of
them
(s)he has won, both since the program started up this time and since (s)he first played the
game on this machine; also keep a record of which other players have taken part in the
games, and what machines they played on, so that the owner of this program can recall
his/her performance against different players;
implement both the straightforward Go Fish game and the variant in which the player has
to
ask for a specific card
(see Variations of Go Fish at http://www.pagat.com/quartet/gofish.html for details).
3
User interface for the Basic Game
The user interface to the program should:
provide appropriate menu items and other commands to enable users to configure the
program, run the game, and examine the game statistics
provide separate windows / forms for displaying the current state of play of the game, the
instructions on how to play, and the game statistics
display the suits and values of all the cards in the hand of the user
display the suits and values of any cards that are played, as they are played
Amongst other things a more advanced version of the system might provide
a facility for automatically detecting and connecting to other machines that are running
NetFish on the same network
facilities for 3 or more users to join in and play the game
facilities for two packs of cards to be used when there are more than 5 players
a wider variety of different versions of the game (e.g. Happy Families)
seamless cross-platform game play
a system for registering copies of the program with a central server
a system for registering players, so that each time a player plays a game (s)he has to sign
in
facilities for connecting with other players anywhere on the internet (without having to
know
the IP numbers or URLs for their machines)
a server that kept game statistics, maintaining a league table and other information
instant messaging facilities, or even better real-time communications between players
a timed version of the game (players are timed out if they dont play their turn quickly
enough)
10 Target platform for development and demonstration of finished product (if any)
The game should run on one or more of the following platforms
32 bit Windows XP Home or Pro
32 bit or 64 bit Windows Vista (any edition)
32 bit or 64 bit Windows 7 (any edition)
Mac OS X 10.4
Mac OS X 10.5
Mac OS X 10.6
Ubuntu Linux
11 Recommended reading / references
12 Additional Constraints
The game should run without the development environment you have used

You might also like