Fixed some comment and metrics warnings
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@552 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
2a553fe6a5
commit
d09041304b
8 changed files with 179 additions and 120 deletions
|
@ -6,7 +6,6 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import jrummikub.model.GameSettings;
|
||||
|
@ -16,7 +15,8 @@ import jrummikub.model.StoneSet;
|
|||
import jrummikub.util.Pair;
|
||||
|
||||
/**
|
||||
* Logic behind the ai turns
|
||||
* Logic behind the AI turns. Ability to correctly find turns is completly
|
||||
* tested by the HandTest testcases.
|
||||
*/
|
||||
public class TurnLogic {
|
||||
private GameSettings settings;
|
||||
|
|
|
@ -38,57 +38,7 @@ public class ApplicationControl {
|
|||
this.view = view;
|
||||
saveControl = new SaveControl(view);
|
||||
|
||||
view.getMenuNewGameEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
view.getQuitWarningPanel().setMode(QuitMode.QUIT_GAME);
|
||||
view.showQuitWarningPanel(true);
|
||||
tempConnection = view.getQuitWarningPanel().getQuitEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
abortControls();
|
||||
startApplication();
|
||||
view.showQuitWarningPanel(false);
|
||||
tempConnection.remove();
|
||||
tempConnection = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
view.getQuitEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
if (networkControl != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (gameControl == null) {
|
||||
System.exit(0);
|
||||
} else {
|
||||
view.getQuitWarningPanel().setMode(QuitMode.QUIT_PROCESS);
|
||||
view.showQuitWarningPanel(true);
|
||||
tempConnection = view.getQuitWarningPanel().getQuitEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
view.getQuitWarningPanel().getCancelEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
view.showQuitWarningPanel(false);
|
||||
if (tempConnection != null) {
|
||||
tempConnection.remove();
|
||||
tempConnection = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
addQuitGameHandlers();
|
||||
|
||||
view.getNetworkGameEvent().add(new IListener() {
|
||||
@Override
|
||||
|
@ -118,6 +68,66 @@ public class ApplicationControl {
|
|||
});
|
||||
}
|
||||
|
||||
private void addQuitGameHandlers() {
|
||||
view.getMenuNewGameEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
showRestartWarning();
|
||||
}
|
||||
});
|
||||
view.getQuitEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
if (networkControl != null) {
|
||||
return;
|
||||
}
|
||||
if (gameControl == null) {
|
||||
System.exit(0);
|
||||
} else {
|
||||
showQuitWarning();
|
||||
}
|
||||
}
|
||||
});
|
||||
view.getQuitWarningPanel().getCancelEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
view.showQuitWarningPanel(false);
|
||||
if (tempConnection != null) {
|
||||
tempConnection.remove();
|
||||
tempConnection = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showRestartWarning() {
|
||||
view.getQuitWarningPanel().setMode(QuitMode.QUIT_GAME);
|
||||
view.showQuitWarningPanel(true);
|
||||
tempConnection = view.getQuitWarningPanel().getQuitEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
abortControls();
|
||||
startApplication();
|
||||
view.showQuitWarningPanel(false);
|
||||
tempConnection.remove();
|
||||
tempConnection = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showQuitWarning() {
|
||||
view.getQuitWarningPanel().setMode(QuitMode.QUIT_PROCESS);
|
||||
view.showQuitWarningPanel(true);
|
||||
tempConnection = view.getQuitWarningPanel().getQuitEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new network login control
|
||||
*/
|
||||
|
|
|
@ -40,7 +40,8 @@ public class LoginControl {
|
|||
}
|
||||
}));
|
||||
|
||||
connections.add(view.getLoginPanel().getCancelEvent().add(new IListener() {
|
||||
connections.add(view.getLoginPanel().getCancelEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
abort();
|
||||
|
@ -52,6 +53,8 @@ public class LoginControl {
|
|||
/**
|
||||
* Open Login panel
|
||||
*
|
||||
* @param reset
|
||||
* when true resets the information in the login panel
|
||||
*/
|
||||
public void startLogin(boolean reset) {
|
||||
if (reset) {
|
||||
|
|
|
@ -44,19 +44,20 @@ public class RoundControl {
|
|||
/** There are invalid set(s) on the table */
|
||||
INVALID_SETS,
|
||||
/**
|
||||
* The player tried to modify the table without providing the initial meld
|
||||
* threshold first
|
||||
* The player tried to modify the table without providing the initial
|
||||
* meld threshold first
|
||||
*/
|
||||
INITIAL_MELD_ERROR,
|
||||
/**
|
||||
* The player didn't provide enough points for the initial meld threshold
|
||||
* The player didn't provide enough points for the initial meld
|
||||
* threshold
|
||||
*/
|
||||
NOT_ENOUGH_POINTS
|
||||
}
|
||||
|
||||
/**
|
||||
* Table, stone sets and type of an invalid turn to allow a user to track his
|
||||
* own errors
|
||||
* Table, stone sets and type of an invalid turn to allow a user to track
|
||||
* his own errors
|
||||
*/
|
||||
public static class InvalidTurnInfo implements Serializable {
|
||||
private static final long serialVersionUID = -3591000741414366776L;
|
||||
|
@ -119,18 +120,28 @@ public class RoundControl {
|
|||
protected List<Connection> connections = new ArrayList<Connection>();
|
||||
private boolean mayPause;
|
||||
|
||||
public RoundControl(IRoundState roundState, IView view) {
|
||||
this(roundState, view, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new RoundControl using the given gameState and view
|
||||
* Create a new RoundControl using the given roundState and view
|
||||
*
|
||||
* @param roundState
|
||||
* initial round state
|
||||
* @param view
|
||||
* view used for user interaction
|
||||
*/
|
||||
public RoundControl(IRoundState roundState, IView view) {
|
||||
this(roundState, view, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new RoundControl using the given roundState and view
|
||||
*
|
||||
* @param roundState
|
||||
* initial round state
|
||||
* @param view
|
||||
* view used for user interaction
|
||||
* @param mayPause
|
||||
* true when players are allowed to pause
|
||||
*/
|
||||
protected RoundControl(IRoundState roundState, IView view, boolean mayPause) {
|
||||
this.roundState = roundState;
|
||||
this.view = view;
|
||||
|
@ -244,11 +255,12 @@ public class RoundControl {
|
|||
}
|
||||
|
||||
view.getTablePanel().setStoneSets(roundState.getTable().clone());
|
||||
view.setCurrentPlayerName(roundState.getActivePlayer().getPlayerSettings()
|
||||
.getName());
|
||||
view.setCurrentPlayerColor(roundState.getActivePlayer().getPlayerSettings()
|
||||
.getColor());
|
||||
view.setCurrentPlayerHasLaidOut(roundState.getActivePlayer().getLaidOut());
|
||||
view.setCurrentPlayerName(roundState.getActivePlayer()
|
||||
.getPlayerSettings().getName());
|
||||
view.setCurrentPlayerColor(roundState.getActivePlayer()
|
||||
.getPlayerSettings().getColor());
|
||||
view.setCurrentPlayerHasLaidOut(roundState.getActivePlayer()
|
||||
.getLaidOut());
|
||||
|
||||
turnControl = createTurnControl(roundState.getActivePlayer()
|
||||
.getPlayerSettings().getType());
|
||||
|
@ -284,9 +296,8 @@ public class RoundControl {
|
|||
view.getPlayerPanel().setEndTurnMode(turnMode);
|
||||
}
|
||||
|
||||
turnControl.setup(
|
||||
new ITurnControl.TurnInfo(roundState, turnMode, mayPause),
|
||||
roundState.getGameSettings(), view);
|
||||
turnControl.setup(new ITurnControl.TurnInfo(roundState, turnMode,
|
||||
mayPause), roundState.getGameSettings(), view);
|
||||
turnControl.getEndOfTurnEvent().add(
|
||||
new IListener2<IRoundState, InvalidTurnInfo>() {
|
||||
@Override
|
||||
|
@ -350,8 +361,10 @@ public class RoundControl {
|
|||
protected void deal() {
|
||||
for (int i = 0; i < roundState.getPlayerCount(); i++) {
|
||||
IHand hand = roundState.getNthNextPlayer(i).getHand();
|
||||
for (int j = 0; j < roundState.getGameSettings().getNumberOfStonesDealt(); j++) {
|
||||
hand.drop(roundState.getGameHeap().drawStone(), new Position(0, 0));
|
||||
for (int j = 0; j < roundState.getGameSettings()
|
||||
.getNumberOfStonesDealt(); j++) {
|
||||
hand.drop(roundState.getGameHeap().drawStone(), new Position(0,
|
||||
0));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -399,7 +412,8 @@ public class RoundControl {
|
|||
}
|
||||
|
||||
view.setBottomPanel(BottomPanelType.NONHUMAN_HAND_PANEL);
|
||||
view.getPlayerPanel().setTime(roundState.getGameSettings().getTotalTime(),
|
||||
view.getPlayerPanel().setTime(
|
||||
roundState.getGameSettings().getTotalTime(),
|
||||
roundState.getGameSettings().getTotalTime());
|
||||
|
||||
nextPlayer();
|
||||
|
@ -487,10 +501,12 @@ public class RoundControl {
|
|||
stonePoints = playerHand.isInitialMeldPossible(roundState
|
||||
.getGameSettings()) ? 200 : 100;
|
||||
} else {
|
||||
stonePoints = playerHand.getStonePoints(roundState.getGameSettings());
|
||||
stonePoints = playerHand.getStonePoints(roundState
|
||||
.getGameSettings());
|
||||
}
|
||||
|
||||
bestScore = updateBestScore(bestScore, -stonePoints, playerHand.getSize());
|
||||
bestScore = updateBestScore(bestScore, -stonePoints,
|
||||
playerHand.getSize());
|
||||
|
||||
points.add(-stonePoints);
|
||||
pointSum += stonePoints;
|
||||
|
@ -542,8 +558,8 @@ public class RoundControl {
|
|||
}
|
||||
|
||||
/**
|
||||
* Redeal stones and restart round if a player was allowed to redeal and chose
|
||||
* to do so
|
||||
* Redeal stones and restart round if a player was allowed to redeal and
|
||||
* chose to do so
|
||||
*/
|
||||
private void redeal() {
|
||||
turnControl = null;
|
||||
|
|
|
@ -60,7 +60,8 @@ public interface ITurnControl {
|
|||
public IEvent1<ITable> getTableUpdateEvent();
|
||||
|
||||
/**
|
||||
* The TurnInfo class encapsulates all information concerning the current turn
|
||||
* The TurnInfo class encapsulates all information concerning the current
|
||||
* turn
|
||||
*/
|
||||
public class TurnInfo {
|
||||
private IRoundState roundState;
|
||||
|
@ -78,12 +79,15 @@ public interface ITurnControl {
|
|||
/**
|
||||
* Creates a new TurnInfo instance
|
||||
*
|
||||
* @param hasLaidOut
|
||||
* has the player laid out yet?
|
||||
* @param roundState
|
||||
* current round state
|
||||
* @param turnMode
|
||||
* the turn mode
|
||||
* @param mayPause
|
||||
* player is allowed to paues
|
||||
*/
|
||||
public TurnInfo(IRoundState roundState, TurnMode turnMode, boolean mayPause) {
|
||||
public TurnInfo(IRoundState roundState, TurnMode turnMode,
|
||||
boolean mayPause) {
|
||||
this.roundState = roundState;
|
||||
|
||||
oldTable = roundState.getTable();
|
||||
|
@ -97,6 +101,11 @@ public interface ITurnControl {
|
|||
this.mayPause = mayPause;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current round state
|
||||
*
|
||||
* @return the current round state
|
||||
*/
|
||||
public IRoundState getRoundState() {
|
||||
return roundState;
|
||||
}
|
||||
|
@ -155,6 +164,11 @@ public interface ITurnControl {
|
|||
return turnMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether pausing is allowed during this turn
|
||||
*
|
||||
* @return true if pause is allowed
|
||||
*/
|
||||
public boolean isMayPause() {
|
||||
return mayPause;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package jrummikub.server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
|
||||
import org.apache.vysper.mina.TCPEndpoint;
|
||||
|
@ -13,7 +12,9 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.storage.InMemoryRoom
|
|||
import org.apache.vysper.xmpp.modules.roster.persistence.MemoryRosterManager;
|
||||
import org.apache.vysper.xmpp.server.XMPPServer;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
/**
|
||||
* Implements a simple XMPP server with a global server password
|
||||
*/
|
||||
public class DedicatedServer {
|
||||
String serverPassword;
|
||||
String hostName;
|
||||
|
@ -44,6 +45,12 @@ public class DedicatedServer {
|
|||
return hostName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the server, this blocks
|
||||
*
|
||||
* @throws Exception
|
||||
* when there is an error during startup
|
||||
*/
|
||||
public void start() throws Exception {
|
||||
XMPPServer server = new XMPPServer(hostName);
|
||||
|
||||
|
@ -67,6 +74,9 @@ public class DedicatedServer {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow authorization using a single password for all users
|
||||
*/
|
||||
public class ServerPasswordAuthorization implements UserAuthorization {
|
||||
@Override
|
||||
public boolean verifyCredentials(Entity entity, String password,
|
||||
|
@ -81,9 +91,16 @@ public class DedicatedServer {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Main for a simple command line dedicated server
|
||||
*
|
||||
* @param args
|
||||
* first argument specifies the server password, it is "jrummikub"
|
||||
* when none is specified
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
|
||||
DedicatedServer server = new DedicatedServer("password");
|
||||
DedicatedServer server = new DedicatedServer(args.length >= 1 ? args[0]
|
||||
: "jrummikub");
|
||||
System.out.println("Server hostname is " + server.getHostName());
|
||||
try {
|
||||
server.start();
|
||||
|
|
|
@ -221,6 +221,9 @@ public interface IView {
|
|||
*/
|
||||
public void showLoginPanel(boolean show);
|
||||
|
||||
/**
|
||||
* Clears user input of the resetLoginPanel
|
||||
*/
|
||||
public void resetLoginPanel();
|
||||
|
||||
/**
|
||||
|
|
|
@ -369,10 +369,6 @@ class TablePanel extends AbstractStonePanel implements ITablePanel {
|
|||
|
||||
g.setClip(oldClip);
|
||||
|
||||
if (leftHoveredConnector == null && rightHoveredConnector == null) {
|
||||
return; // We're done here...
|
||||
}
|
||||
|
||||
g.translate(translation.getFirst(), translation.getSecond());
|
||||
g.setClip(hoveredConnectorArea);
|
||||
g.setTransform(oldTransform);
|
||||
|
|
Reference in a new issue