private void assertNotFinished() { if (isFinished()) { throw new IllegalArgumentException("You can not guess on a finished game."); } }
public void addNewGuess(Row row) { if (isFinished()) { throw new IllegalArgumentException("You can not guess on a finished game."); } final int positionMatch = secretRow.nrMatchingPositions(row.positions); final int colorMatch = secretRow.nrMatchingColors(row.positions); row.setMatch(positionMatch, colorMatch); table.addRow(row); if (itWasAWinningGuess(positionMatch)) { finished = true; } }
@Test public void testSimpleGame() { Table table = new Table(NR_COLUMNS, manager); Guess secret = createSecret(); System.out.println(PrettyPrintRow.pprint(new Row(secret, 4, 0))); System.out.println(); Game game = new Game(table, secret); Guesser guesser = new UniqueGuesser(table); while (!game.isFinished()) { Guess guess = guesser.guess(); if (guess == Guess.none) { Assert.fail(); } Row row = game.addNewGuess(guess); System.out.println(PrettyPrintRow.pprint(row)); } } }
@Test public void testSimpleGame() { Table table = new Table(nrColumns, manager); Color[] secret = createSecret(); System.out.println(PrettyPrintRow.pprint(new Row(secret))); System.out.println(); Game game = new Game(table, secret); Guesser guesser = new UniqueGuesser(table); while (!game.isFinished()) { Row guess = guesser.guess(); if (guess == Row.none) { Assert.fail(); } game.addNewGuess(guess); System.out.println(PrettyPrintRow.pprint(guess)); } } }
public String playParallel() { Table table = new Table(NR_COLUMNS, manager); Guess secret = createSecret(); println(PrettyPrintRow.pprint(new Row(secret, NR_COLUMNS, 0))); println(); Game game = new Game(table, secret); final IntervalGuesser[] guessers = createGuessers(table); startAsynchronousGuessers(guessers); final Guesser finalCheckGuesser = new UniqueGuesser(table); int serial = 1; try { while (!game.isFinished()) { final Guess guess = guessQueue.take(); if (finalCheckGuesser.guessMatch(guess)) { if (guess == Guess.none) { Assert.fail(); } Row row = game.addNewGuess(guess); print("" + serial + ". "); serial++; println(PrettyPrintRow.pprint(row)); } } } catch (InterruptedException ie) { } finally { stopAsynchronousGuessers(guessers); } return out; }