See on konkreetne näide.
Käsitsi tehtud, kohati ei vasta pakutud skeemile.
Lõpus on lähtetekst (plain).
Ilmselt tahavad reavahed sättimist.
[Sketch0]
-
package bingo.game;
import java.util.Stack;
import bingo.shared.*;
- [Sketch0.0.0]
RingMaster
[Sketch0.0.0] RingMaster
- class RingMaster implements States
[Sketch0.0.0.0.0] RingMaster
- RingMaster() throws java.io.IOException
- socketGate = new SocketGate();
gameParameters = new GameParameters();
notary = new NotaryPublic();
roster = new Roster();
announcedBalls = new Stack();
announcedBalls.push(new BingoBall(BingoBall.FREE_SPACE));
[Sketch0.0.0.0.1]getGameParameters
- GameParameters getGameParameters()
- <--0.0.0.0.1 gameParameters
[Sketch0.0.0.0.2] getRoster
[Sketch0.0.0.0.3]getGameNumber
[Sketch0.0.0.0.4]waitForFirstPlayer
- synchronized void waitForFirstPlayer()
- gameNumber++;
state = WAITING;
socketGate.sendGameStatusMessage(statusString());
- [:Sketch0.0.0.0.4.0.0:]
wait
- socketGate.sendGameStatusMessage("Beginning count down ... ");
[Sketch0.0.0.0.5]waitForFirstPlayer
- synchronized void waitForFirstPlayer()
- gameNumber++;
state = WAITING;
socketGate.sendGameStatusMessage(statusString());
- [:Sketch0.0.0.0.5.0.0:]
wait
- socketGate.sendGameStatusMessage("Beginning count down ... ");
[Sketch0.0.0.0.6]ready
- <--0.0.0.0.6 (state == BEFOREINITIALIZATION) ? false : true
[Sketch0.0.0.0.7]isCountingDown
- <--0.0.0.0.7 (state == COUNTINGDOWN) ? true : false
[Sketch0.0.0.0.8] isRegistering
- synchronized boolean isRegistering()
- return (state == WAITING || state == COUNTINGDOWN) ? true : false;
- <--0.0.0.0.8 (state == WAITING || state == COUNTINGDOWN) ? true : false
[Sketch0.0.0.0.9]isCheckingForWinner
- boolean isCheckingForWinner()
- <--0.0.0.0.9 (state == CHECKINGFORWINNER) ? true : false
[Sketch0.0.0.0.10]gameInProgress
- synchronized boolean gameInProgress()
- <--0.0.0.0.10 (state == PLAYING || state == CHECKINGFORWINNER) ? true : false
[Sketch0.0.0.0.11]startCountDown
- synchronized void startCountDown()
- state = COUNTINGDOWN;
notifyAll();
[Sketch0.0.0.0.12]startGame
-
state = PLAYING;
socketGate.sendGameStatusMessage("Game Starting...");
[Sketch0.0.0.0.13] setCheckingForWinner
- void setCheckingForWinner()
- state = CHECKINGFORWINNER;
[Sketch0.0.0.0.14]setGameResumed
- synchronized void setGameResumed()
[Sketch0.0.0.0.15] setGameOver
- synchronized void setGameOver()
-
state = GAMEOVER;
announceBall(new BingoBall(BingoBall.GAME_OVER));
announcedBalls.removeAllElements();
announcedBalls.push(new BingoBall(BingoBall.FREE_SPACE));
roster.removeAllElements();
notifyAll();
[Sketch0.0.0.0.16]signTheCards
- void signTheCards(Card[] cards)
[Sketch0.0.0.0.17] verify
[*:Sketch0.0.0.0.17.0.1:]
- * i = 0; i < Card.SIZE; i ++
[*:Sketch0.0.0.0.17.0.1.0.0:]
- * int j = 0; j < Card.SIZE; j ++
- [Sketch0.0.0.0.17.0.1.0.0.0.0]
- ? announcedBalls.contains(c.boardValues[i][j])
- rowMatches ++;
- <--0.0.0.0.17.0.1.0.0.0.0
- ? announcedBalls.contains(c.boardValues[j][i])
- colMatches ++;
- <--0.0.0.0.17.0.1.0.0.0.0
- ? (i == j) && announcedBalls.contains(c.boardValues[i][j])
- diagMatches ++;
[:Sketch0.0.0.0.4.0.0:]wait
[:Sketch0.0.0.0.5.0.0:]wait
[!!|Sketch0.0.0.0.4.0.0.0.0]
[!!|Sketch0.0.0.0.5.0.0.0.0]
[!!|Sketch0.0.0.0.16.0.0]
- PENDING: can't sign the cards, what to do?
[Sketch0.0.0.0.22]statusString
- private String statusString(int anArgument)
- [Sketch0.0.0.0.22.0.0]
- <---0.0.0.0.22 "The BINGO server isn't ready yet."
- <---0.0.0.0.22 "Waiting for first player to register for game # " + gameNumber + "."
- <---0.0.0.0.22 "Game # " + gameNumber + " starts in " + anArgument + " seconds."
- <---0.0.0.0.22 "Game #" + gameNumber + " in progress. "
+ announcedBalls.size() + " balls announced.";
- <---0.0.0.0.22 "Game paused while checking for winner."
+ announcedBalls.size() + " balls announced.";
- <---0.0.0.0.22 "Game over."
- <---0.0.0.0.22 "Nuttin'."