LgrfTable implements Serializable { public void update(Color colorToPlay, boolean playoutWon, short penultimateMove, short previousMove, short reply) { if (reply != PASS) { if (playoutWon) { replies1[colorToPlay.index()][previousMove] = reply; replies2[colorToPlay.index()][penultimateMove][previousMove] = reply; } else { if (replies1[colorToPlay.index()][previousMove] == reply) { replies1[colorToPlay.index()][previousMove] = NO_POINT; } if (replies2[colorToPlay.index()][penultimateMove][previousMove] == reply) { replies2[colorToPlay.index()][penultimateMove][previousMove] = NO_POINT; } } } } LgrfTable(CoordinateSystem coords); void clear(); short getFirstLevelReply(Color color, short previousMove); short getSecondLevelReply(Color color, short penultimateMove,
			short previousMove); void update(Color colorToPlay, boolean playoutWon,
			short penultimateMove, short previousMove, short reply);  }
@Test public void testUpdate() { table.update(BLACK, true, coords.at("a1"), coords.at("b1"), coords.at("c1")); assertEquals(coords.at("c1"), table.getFirstLevelReply(BLACK, coords.at("b1"))); assertEquals(NO_POINT, table.getFirstLevelReply(BLACK, coords.at("a1"))); assertEquals(coords.at("c1"), table.getSecondLevelReply(BLACK, coords.at("a1"), coords.at("b1"))); }