1 package net.mlw.gfw.ext.basic.server;
2
3 import net.mlw.gfw.ext.basic.exception.SeatTakenException;
4
5 /***
6 * @author Matthew L. Wilson
7 * @version $Revision: 1.4 $ $Date: 2004/05/20 17:08:32 $
8 */
9 public abstract class AbstractTurnBasedGame implements TurnBasedGame
10 {
11 /*** All the players sitting at the table. **/
12 private Player[] players;
13
14 /*** Gets the number of players. **/
15 private int numberOfSeats;
16
17 /*** Gets the number of players seated. **/
18 private int numberSeated = 0;
19
20 /*** The seat of the current turn. **/
21 private int currentTurn = 0;
22
23 /*** The seat of the Player that started this round. **/
24 private int leader = currentTurn;
25
26 /*** The number of players per team. **/
27 private int numberOfPlayersPerTeam;
28
29 /***
30 * @param numberOfSeats
31 */
32 public AbstractTurnBasedGame(int numberOfSeats, int numberOfPlayersPerTeam)
33 {
34 this.numberOfSeats = numberOfSeats;
35 this.numberOfPlayersPerTeam = numberOfPlayersPerTeam;
36 this.players = new Player[numberOfSeats];
37 }
38
39 /***
40 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getPlayerSeatedAt(int)
41 */
42 public Player getPlayerSeatedAt(int seat)
43 {
44 return players[seat];
45 }
46
47 /***
48 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#setPlayerSeatedAt(net.mlw.gfw.ext.basic.server.Player, int)
49 */
50 public void setPlayerSeatedAt(Player player, int seat)
51 {
52 if (players[seat] != null)
53 {
54 throw new SeatTakenException();
55 }
56
57 players[seat] = player;
58 numberSeated++;
59 }
60
61 /***
62 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getNumberOfSeats()
63 */
64 public int getNumberOfSeats()
65 {
66 return numberOfSeats;
67 }
68
69 /***
70 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getNumberSeated()
71 */
72 public int getNumberSeated()
73 {
74 return numberSeated;
75 }
76
77 /***
78 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getCurrentTurn()
79 */
80 public int getCurrentTurn()
81 {
82 return currentTurn;
83 }
84
85 /***
86 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#setCurrentTurn(int)
87 */
88 public void setCurrentTurn(int turn)
89 {
90 currentTurn = turn;
91 }
92
93 /***
94 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getLeader()
95 */
96 public int getLeader()
97 {
98 return leader;
99 }
100
101 /***
102 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getSeatOfPlayer(java.lang.String)
103 */
104 public int getSeatOfPlayer(String userName)
105 {
106 for (int i = 0; i < numberOfSeats; i++)
107 {
108 if (userName != null && players[i] != null && userName.equals(players[i].getUserName()))
109 {
110 return i;
111 }
112 }
113 return -1;
114 }
115
116 /***
117 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#getNumberOfPlayersPerTeam()
118 */
119 public int getNumberOfPlayersPerTeam()
120 {
121 return numberOfPlayersPerTeam;
122 }
123
124 /***
125 * @see net.mlw.gfw.ext.basic.server.TurnBasedGame#setLeader(int)
126 */
127 public void setLeader(int leader)
128 {
129 this.leader = leader;
130 }
131
132 }
This page was automatically generated by Maven