minor fixes and improvements
This commit is contained in:
parent
0bc6d3e6f7
commit
8fb61a6173
3 changed files with 39 additions and 8 deletions
|
@ -49,6 +49,8 @@ public class ConnectFour extends JFrame implements ActionListener {
|
|||
|
||||
private GameType gameType;
|
||||
|
||||
String serverIp;
|
||||
|
||||
enum GameType {
|
||||
Local, RemoteServer, RemoteClient
|
||||
}
|
||||
|
@ -133,13 +135,13 @@ public class ConnectFour extends JFrame implements ActionListener {
|
|||
this.players[0] = new LocalPlayer(this.buttonRow, null);
|
||||
|
||||
try {
|
||||
this.players[1] = new RemotePlayerClient(this.buttonRow, "localhost", this.players[0]);
|
||||
this.players[1] = new RemotePlayerClient(this.buttonRow, this.serverIp, this.players[0]);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// do not add the listener of the local player here, as the client player will
|
||||
// handle its moves in order to make shure they are legal
|
||||
// handle its moves in order to make sure they are legal
|
||||
this.players[1].addActionListener(this);
|
||||
|
||||
break;
|
||||
|
@ -246,6 +248,7 @@ public class ConnectFour extends JFrame implements ActionListener {
|
|||
if (!res) {
|
||||
// beep in case of error
|
||||
Toolkit.getDefaultToolkit().beep();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.gameType != GameType.RemoteClient && this.gameState.equals(GameState.Running))
|
||||
|
@ -349,8 +352,10 @@ public class ConnectFour extends JFrame implements ActionListener {
|
|||
game.startNewGame(GameType.Local);
|
||||
else if (args[0].equals("server"))
|
||||
game.startNewGame(GameType.RemoteServer);
|
||||
else if (args[0].equals("client"))
|
||||
else if (args[0].equals("client")) {
|
||||
game.serverIp = args[1];
|
||||
game.startNewGame(GameType.RemoteClient);
|
||||
}
|
||||
else
|
||||
System.out.println("Usage: java ConnectFour.java [server|client]");
|
||||
}
|
||||
|
|
|
@ -70,6 +70,33 @@ public class Plate {
|
|||
return Plate.getValue(this.type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get the type of the plate as string
|
||||
*
|
||||
* @return "yellow" or "red"
|
||||
*/
|
||||
public String getName() {
|
||||
return Plate.getName(this.type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get the type of the plate as string
|
||||
*
|
||||
* @param type plate type
|
||||
*
|
||||
* @return "yellow" or "red"
|
||||
*/
|
||||
public static String getName(PlateType type) {
|
||||
switch (type) {
|
||||
case O:
|
||||
return "yellow";
|
||||
case X:
|
||||
return "red";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get a PlateType as int
|
||||
*
|
||||
|
@ -105,10 +132,10 @@ public class Plate {
|
|||
float[] hsb = new float[3];
|
||||
switch (type) {
|
||||
case O:
|
||||
Color.RGBtoHSB(249, 227, 6, hsb);
|
||||
break;
|
||||
Color.RGBtoHSB(249, 227, 6, hsb);
|
||||
break;
|
||||
case X:
|
||||
Color.RGBtoHSB(246, 33, 61, hsb);
|
||||
Color.RGBtoHSB(246, 33, 61, hsb);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -108,8 +108,7 @@ public abstract class Player {
|
|||
* @return player name
|
||||
*/
|
||||
public String getName() {
|
||||
Color thisColor = Plate.getColor(this.usingPlateType);
|
||||
return thisColor.equals(Color.BLACK) ? "Black":"Red";
|
||||
return Plate.getName(this.usingPlateType);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Reference in a new issue