Merge remote-tracking branch 'origin/master' into malte-alternative
This commit is contained in:
commit
dfc1aad31b
9
Makefile
9
Makefile
|
@ -9,7 +9,8 @@ JAVADOC_OPTIONS=-Xdoclint:all -private -encoding UTF-8 -charset UTF-8 -docencodi
|
|||
BUILDS=builds
|
||||
DOC=doc
|
||||
CLASSPATH=src
|
||||
LIBARIES=
|
||||
LIBARIES=\
|
||||
lib/jansi-1.16.jar
|
||||
CLASSES=\
|
||||
src/game/Main.java \
|
||||
src/game/Game.java \
|
||||
|
@ -34,13 +35,13 @@ P2=
|
|||
|
||||
|
||||
all: $(CLASSES) $(FXMLS_BUILD)
|
||||
$(JAVAC) $(JAVAC_OPTIONS) -cp $(CLASSPATH) $(CLASSES) -d $(BUILDS)
|
||||
$(JAVAC) $(JAVAC_OPTIONS) -cp $(CLASSPATH):$(LIBARIES) $(CLASSES) -d $(BUILDS)
|
||||
|
||||
run: $(CLASSES)
|
||||
$(JAVA) -cp $(BUILDS) $(MAIN) $(P1) $(P2)
|
||||
$(JAVA) -cp $(BUILDS):$(LIBARIES) $(MAIN) $(P1) $(P2)
|
||||
|
||||
simulate: $(CLASSES)
|
||||
$(JAVA) -cp $(BUILDS) $(MAIN) $(N)
|
||||
$(JAVA) -cp $(BUILDS):$(LIBARIES) $(MAIN) $(N)
|
||||
|
||||
doc: $(CLASSES)
|
||||
$(JAVADOC) $(JAVADOC_OPTIONS) -cp $(CLASSPATH):$(LIBARIES) $(CLASSES) -d $(DOC)
|
||||
|
|
BIN
lib/jansi-1.16.jar
Normal file
BIN
lib/jansi-1.16.jar
Normal file
Binary file not shown.
|
@ -1,6 +1,9 @@
|
|||
package game;
|
||||
|
||||
import java.util.Random;
|
||||
import org.fusesource.jansi.AnsiConsole;
|
||||
import org.fusesource.jansi.Ansi;
|
||||
import org.fusesource.jansi.Ansi.Color;
|
||||
|
||||
import player.Player;
|
||||
import player.maurizio.MaurizioAI;
|
||||
|
@ -113,6 +116,8 @@ public class Game {
|
|||
* @return the winner of the game (0=draw)
|
||||
*/
|
||||
public int start(boolean output, boolean rand) {
|
||||
// Initialize Jansi
|
||||
AnsiConsole.systemInstall();
|
||||
// Set starting player.
|
||||
if(rand){
|
||||
Random ran = new Random();
|
||||
|
@ -131,7 +136,7 @@ public class Game {
|
|||
makeMove(output);
|
||||
currentP = other(currentP);
|
||||
if(output){
|
||||
logGame();
|
||||
logGame(hist.getLast());
|
||||
}
|
||||
int state = checkState(output);
|
||||
if(state != (-1)){
|
||||
|
@ -140,9 +145,13 @@ public class Game {
|
|||
System.out.println("Thanks for Playing!");
|
||||
System.out.println("*******************");
|
||||
}
|
||||
// Uninstall Jansi
|
||||
AnsiConsole.systemUninstall();
|
||||
return state; // the result of the game
|
||||
}
|
||||
}
|
||||
// Uninstall Jansi
|
||||
AnsiConsole.systemUninstall();
|
||||
System.out.println("BUG!");
|
||||
return checkState(false); // it is impossible to reach this, but it makes the compiler happy ;)
|
||||
}
|
||||
|
@ -264,17 +273,30 @@ public class Game {
|
|||
/**
|
||||
* Prints the current board to stdout.
|
||||
*/
|
||||
private void logGame() {
|
||||
private void logGame(GameEntry entry) {
|
||||
Ansi playerX = Ansi.ansi().render("|@|red X|@");
|
||||
Ansi playerO = Ansi.ansi().render("|@|green O|@");
|
||||
Ansi playerXBold = Ansi.ansi().render("|@|magenta,bold X|@");
|
||||
Ansi playerOBold = Ansi.ansi().render("|@|magenta,bold O|@");
|
||||
for(int i = 0; i < board[0].length; i++){
|
||||
for(int j = 0;j < board.length; j++){
|
||||
if(board[j][i] == 0){
|
||||
System.out.print("| ");
|
||||
}
|
||||
if(i == entry.getRow() && j == entry.getColumn()) {
|
||||
if(board[j][i] == 1){
|
||||
System.out.print("|X");
|
||||
System.out.print(playerXBold);
|
||||
}
|
||||
if (board[j][i] == 2){
|
||||
System.out.print("|O");
|
||||
System.out.print(playerOBold);
|
||||
}
|
||||
} else {
|
||||
if(board[j][i] == 1){
|
||||
System.out.print(playerX);
|
||||
}
|
||||
if (board[j][i] == 2){
|
||||
System.out.print(playerO);
|
||||
}
|
||||
}
|
||||
if(board[j][i] == 0){
|
||||
System.out.print("| ");
|
||||
}
|
||||
}
|
||||
System.out.println("|");
|
||||
|
|
Loading…
Reference in a new issue