Skip to content

Instantly share code, notes, and snippets.

View tarynsauer's full-sized avatar

Taryn Sauer tarynsauer

  • Madison, WI
View GitHub Profile
private UI ui;
private MockPrintStream printStream;
@Before
public void setUp() {
MockOutputStream outputStream = new MockOutputStream();
printStream = new MockPrintStream(outputStream);
printStream.setPrintCallHistory(new ArrayList<String>());
ui = new UI(printStream);
}
import java.io.*;
public class UI {
private PrintStream stream;
public UI(PrintStream stream) {
this.stream = stream;
}
InputStream input = System.in;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(input));
public class AIPlayer implements Player {
private String marker;
private Player opponent;
public AIPlayer(String marker) {
this.marker = marker;
}
@Override
public String getMarker() {
public class AIPlayer extends AbstractPlayer {
public AIPlayer(String marker) {
super(marker);
}
@Override
public void makeMove(Board board) {
String move = AI.getAIMove();
int moveIndex = Integer.parseInt(move);
abstract class AbstractPlayer implements Player {
private String marker;
private Player opponent;
public String getMarker() {
return marker;
}
public Player getOpponent() {
return opponent;
public interface Player {
public String getMarker();
public Player getOpponent();
void setOpponent(Player player);
void addMarker(Board board, int move);
void makeMove(Board board);
}
public class AI {
private AIPlayer currentPlayer;
private static final int WIN = 1;
private static final int LOSE = -1;
private static final int TIE = 0;
private static final int NEG_INF = -999;
private static final int POS_INF = 999;
public AI(AIPlayer currentPlayer) {
this.currentPlayer = currentPlayer;
public class Board {
private int rows = 3;
private String[] cells;
private int[][] winningLines = new int[8][3];
public Board() {
cells = new String[9];
for (int num = 1; num <= (cells.length); num++) {
int i = num - 1;
import org.junit.Before;
import org.junit.Test;
import java.util.Arrays;
import java.util.ArrayList;
import static junit.framework.Assert.assertTrue;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import org.junit.Before;
import org.junit.Test;
import java.util.Arrays;
import static org.junit.Assert.assertEquals;
public class HumanPlayerTest {
private HumanPlayer player;
private Board board;