Added jansi, working colorization
This commit is contained in:
parent
a0d6033cb7
commit
a6a2a5a863
3
Makefile
3
Makefile
|
@ -9,7 +9,8 @@ JAVADOC_OPTIONS=-Xdoclint:all -private -encoding UTF-8 -charset UTF-8 -docencodi
|
||||||
BUILDS=builds
|
BUILDS=builds
|
||||||
DOC=doc
|
DOC=doc
|
||||||
CLASSPATH=src
|
CLASSPATH=src
|
||||||
LIBARIES=
|
LIBARIES=\
|
||||||
|
lib/jansi-1.16.jar
|
||||||
CLASSES=\
|
CLASSES=\
|
||||||
src/game/Main.java \
|
src/game/Main.java \
|
||||||
src/game/Game.java \
|
src/game/Game.java \
|
||||||
|
|
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;
|
package game;
|
||||||
|
|
||||||
import java.util.Random;
|
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.Player;
|
||||||
import player.maurizio.MaurizioAI;
|
import player.maurizio.MaurizioAI;
|
||||||
|
@ -113,6 +116,8 @@ public class Game {
|
||||||
* @return the winner of the game (0=draw)
|
* @return the winner of the game (0=draw)
|
||||||
*/
|
*/
|
||||||
public int start(boolean output, boolean rand) {
|
public int start(boolean output, boolean rand) {
|
||||||
|
// Initialize Jansi
|
||||||
|
AnsiConsole.systemInstall();
|
||||||
// Set starting player.
|
// Set starting player.
|
||||||
if(rand){
|
if(rand){
|
||||||
Random ran = new Random();
|
Random ran = new Random();
|
||||||
|
@ -131,7 +136,7 @@ public class Game {
|
||||||
makeMove(output);
|
makeMove(output);
|
||||||
currentP = other(currentP);
|
currentP = other(currentP);
|
||||||
if(output){
|
if(output){
|
||||||
logGame();
|
logGame(hist.getLast());
|
||||||
}
|
}
|
||||||
int state = checkState(output);
|
int state = checkState(output);
|
||||||
if(state != (-1)){
|
if(state != (-1)){
|
||||||
|
@ -140,9 +145,13 @@ public class Game {
|
||||||
System.out.println("Thanks for Playing!");
|
System.out.println("Thanks for Playing!");
|
||||||
System.out.println("*******************");
|
System.out.println("*******************");
|
||||||
}
|
}
|
||||||
|
// Uninstall Jansi
|
||||||
|
AnsiConsole.systemUninstall();
|
||||||
return state; // the result of the game
|
return state; // the result of the game
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Uninstall Jansi
|
||||||
|
AnsiConsole.systemUninstall();
|
||||||
return checkState(false); // it is impossible to reach this, but it makes the compiler happy ;)
|
return checkState(false); // it is impossible to reach this, but it makes the compiler happy ;)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,18 +271,31 @@ public class Game {
|
||||||
/**
|
/**
|
||||||
* Prints the current board to stdout.
|
* Prints the current board to stdout.
|
||||||
*/
|
*/
|
||||||
private void logGame() {
|
private void logGame(GameEntry entry) {
|
||||||
|
Ansi playerX = Ansi.ansi().render("|X");
|
||||||
|
Ansi playerO = Ansi.ansi().render("|O");
|
||||||
|
Ansi playerXBold = Ansi.ansi().render("|@|red,bold X|@");
|
||||||
|
Ansi playerOBold = Ansi.ansi().render("|@|red,bold O|@");
|
||||||
for(int i = 0; i < board[0].length; i++){
|
for(int i = 0; i < board[0].length; i++){
|
||||||
for(int j = 0;j < board.length; j++){
|
for(int j = 0;j < board.length; j++){
|
||||||
|
if(i == entry.getRow() && j == entry.getColumn()) {
|
||||||
|
if(board[j][i] == 1){
|
||||||
|
System.out.print(playerXBold);
|
||||||
|
}
|
||||||
|
if (board[j][i] == 2){
|
||||||
|
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){
|
if(board[j][i] == 0){
|
||||||
System.out.print("| ");
|
System.out.print("| ");
|
||||||
}
|
}
|
||||||
if(board[j][i] == 1){
|
|
||||||
System.out.print("|X");
|
|
||||||
}
|
|
||||||
if (board[j][i] == 2){
|
|
||||||
System.out.print("|O");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
System.out.println("|");
|
System.out.println("|");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue