minor fixes and improvements

This commit is contained in:
Dorian Zedler 2020-03-04 14:19:37 +01:00
parent 0bc6d3e6f7
commit 8fb61a6173
3 changed files with 39 additions and 8 deletions

View File

@ -48,6 +48,8 @@ public class ConnectFour extends JFrame implements ActionListener {
private Player players[] = new Player[2];
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]");
}

View File

@ -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;
}

View File

@ -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);
}
/**