One-way to solidify the concepts of the client/server calculating and inter process communication is to develop the requirements for a computer game which plays “Rock, Paper, Scissors” using these methods. The requirements must specify which elements of gaming task are performed by client and those performed by the server, which inter process communication method you are going to employ, and comprise a discussion of how information is exchanged. An actual program is not needed just the design specifications.
The game is normally played by two people (more are possible), and the rules are quite simple. Each player decides on one of three items, then on the count of three shows them to other player(s) (i.e., each player pumps their first three times, then having out their hand in an appropriate gesture.) The items might be rock (closed fist), paper (palm open), or scissors (two finger “peace” sign), and the winner is determined by:
- Paper beats rock – paper wraps rock
- Rock beats scissors – rock dulls scissors
- Scissors beats paper – scissors cut paper
Assignment is as follows:
- Make a set of programs
- No coding, just design
- Rules for Rock, Paper, Scissors
- If the two people select the same symbol (rock, paper, scissors), it is a draw and they play again
- If the two people select dissimilar symbols, the winner is determined as follows:
- Rock beats scissors
- Scissors beats paper
- Paper beats rock
- Use at least two processes
- Specify the inter process communication technique used to exchange messages between the client(s) and server
- You will need to answer the questions
- How do you get the server’s attention (how does the process start)?
- What commands will be accepted (how do you send messages)?
- How are the answer provided (what is the response)?
- In addition you will need to deal with the subsequent:
- Content of the message
- How the messages are exchanged
- How does the server respond to the message?
- What occurs if timeout
- How is the game terminated?