CS 342 - Spring 2014

Projects 4 & 5

  • Group Members Determined and Posted - Due: Tuesday, 4/8/2014 by 11:59pm
  • Project 4 - Due: Tuesday, 4/15/2014 by 11:59pm
  • Design Report for Project 5 - Due: Tuesday, 4/22/2014 by 11:59pm
  • Project 5 - Due: Tuesday, 4/29/2014 by 11:59pm
For these two project, you are to work in a group of 3 to 5 members of your own choosing (see next paragraph) to create networked applications that use a GUI. NOTE: THE SAME GROUP OF PEOPLE ARE TO WORK TOGETHER ON BOTH PROJECT 4 AND PROJECT 5.

Group Members Determined and Posted

Each group must post on Piazza, the names of all members of their group by Tuesday, 4/8/2014 by 11:59pm. All persons not posted in a group at that time will be randomly assigned by Prof. Troy on Wednesday, 4/9/2014. Once this random assignment is done, no changing of group members will be allowed!

Project 4 - Networked Chat Application

For Project 4, your team is to create an set of GUI based programs in Java Swing that will allow multiple people to connect together and send messages to specific conected persons or to the entire group.

One program will act as the "central server". Another program will act as the "client program".

All clients will connect to the central server. When sending a message, the client will first send the message to the central server which will then forward the message to the desired client or clients. A clients does not connect directly to another client. We will assume that the central server's network information (ip address and port number) is "well known".

Each client will display a list of the persons currently connected to the central server. As a new person connects to the central server, a displayed list of names at each client needs to be updated to reflect the new person joining the group (or chat room). Also as a person disconnects/leaves from the central server, the displayed list of names at each client need to again be updated.

When a message is send by a client, the client is to have the option to send the message to all currently connected clients or to just a single specific client.

The client is to show a list of messages received and who sent those messages.

For 10 pts extra points, you can add a feature in which a client can specify any number of other clients to send whom a message can be sent.

Program 5 - Networked Card Game
For project 5, your team is to write a GUI based program using Java Swing that will allow multiple players to play a card game across the network.

The program created must be able to act as either the server or the client for the network connection. A menu item (or items) is to determine whether the program is currently in "client mode" or "server mode". The menu is also to allow the "client mode" users to connect or disconnect from a server. By default, the program should start in "disconnected client mode". Thus allowing the user to first determine whether the program will be the server (i.e. host) for a game or whether the user will be a client who will join a specific server.

Your program must contain the basics of the Chat Program created for Project 4 to allow the users to talk to each other while the game is being set up and played.

The card game to be played is the basic rules for Rummy as defined at http://rummy.com/rummyrules.html.

For 10 points extra credit, you may impliment the game of Phase 10 or Five Crowns instead of the basic rules of Rummy. The official rules of these games can be found at:

Both of these games are variations of a rummy game. You can find multiple locations around the internet that discuss games, but we will be using the above links as the official rules. You are not to implement any variations or house rules as part of your game.

Note that all of the games allow various users to play. You program must also allow varying numbers of users to play.

  • Rummy allows from 2 - 6 players
  • Phase 10 allows from 2 - 6 players
  • Five Crowns allows from 2 - 7 player
The program is to handle a number of distinct stages during the playing of the games. A rough list of stages is given below. Your team may wish to come up with more stages if you think it is nessecary.
  1. Setting one player to be the server.
  2. Allowing multiple players to connect to the server.
  3. Playing each hand until the ending conditions have been met.
  4. Determine and announce the winner.
  5. Disconnecting all players from the server.
  6. Shutting down the server.
Note that Step 3 requires multiple Hands to be played. Each Hand requires mutliple turns to be played. So a lot is going on in Step 3. If you wish, you may add Step 4.5 which allows the same players to play another hand, but this is NOT required.

-- Main.troy - 2014-03-31

Edit | Attach | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2014-04-04 - 14:48:58 - Main.troy
 
Copyright 2016 The Board of Trustees
of the University of Illinois.webmaster@cs.uic.edu
WISEST
Helping Women Faculty Advance
Funded by NSF