Package org.gnubridge.core

Examples of org.gnubridge.core.Deal


  public void examinePosition(Node node) {
    if (node.isPruned()) {
      return;
    }
    Deal position = game.duplicate();
    position.playMoves(node.getMoves());

    Player player = position.getNextToPlay();
    node.setPlayerTurn(player.getDirection());
    node.setPosition(position);
    if (position.oneTrickLeft()) {
      node.setCardPlayed(player.getPossibleMoves(position.getCurrentTrick()).get(0));
      position.playMoves(finalMoves);
    }
    for (Card card : player.getPossibleMoves(position.getCurrentTrick())) {
      makeChildNodeForCardPlayed(node, player, card);
    }

    checkDuplicatePositions(node, position);
    if (position.getTricksPlayed() >= maxTricks || position.isDone() || node.hasIdenticalTwin()) {
      node.setLeaf(true);
      trim(node);
    } else {
      for (Node move : node.children) {
        if (shouldPruneCardsInSequence) {
View Full Code Here


public class DoubleDummySolverTest extends TestCase {

  public void testExaminePositionSetsNextToPlay() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    GameUtils.initializeSingleColorSuits(game, 2);
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertEquals(game.getNextToPlay().getDirection(), node.getPlayerTurn());
    assertEquals(Direction.SOUTH_DEPRECATED, node.getPlayerTurn());
  }
View Full Code Here

    assertEquals(Direction.SOUTH_DEPRECATED, node.getPlayerTurn());
  }

  public void testExaminePositionInitsChildren() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new String[] { "3", "10" });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new String[] { "2", "9" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "A", "5" });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new String[] { "K", "7" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertEquals(2, node.children.size());
  }
View Full Code Here

    });

  }

  private static Deal constructGame() {
    Deal game = new Deal(NoTrump.i());
    game.getWest().init(new Hand("", "8", "", ""));
    game.getNorth().init(new Hand("3", "", "", ""));
    game.getEast().init(new Hand("A", "", "", ""));
    game.getSouth().init(new Hand("", "", "", "3"));
    game.setNextToPlay(Direction.EAST_DEPRECATED);
    return game;
  }
View Full Code Here

    assertEquals(2, node.children.size());
  }

  public void testExaminePositionPushesChildrenOnStack() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new String[] { "3", "10" });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new String[] { "2", "9" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "A", "5" });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new String[] { "K", "7" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertTrue(s.getStack().contains(node.children.get(0)));
    assertTrue(s.getStack().contains(node.children.get(1)));
  }
View Full Code Here

    assertTrue(s.getStack().contains(node.children.get(0)));
    assertTrue(s.getStack().contains(node.children.get(1)));
  }

  public void testDoNotExpandNodesBeyondTrickLimit() {
    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new String[] { "3", "10", "4" });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new String[] { "2", "9", "6" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "A", "5", "J" });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new String[] { "K", "7", "Q" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.setMaxTricks(1);
    Node node_0_0_0_0 = new Node(new Node(new Node(new Node(new Node(null)))));
    s.examinePosition(node_0_0_0_0);
    assertEquals(0, s.getStack().size());
View Full Code Here

    assertEquals(0, s.getStack().size());
  }

  public void testOnlyExpandOneCardInSequenceTwoCards() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    // game.getPlayer(Direction.WEST).init(new String[] { "A", "5" });
    // game.getPlayer(Direction.NORTH).init(new String[] { "2", "9" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "J", "10" });
    // game.getPlayer(Direction.EAST).init(new String[] { "K", "7" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertEquals(2, s.getStack().size());
    assertTrue(s.getStack().contains(node.children.get(1)));
    assertTrue(node.children.get(0).isPruned());
View Full Code Here

    assertFalse(node.children.get(1).isPruned());
  }

  public void testOnlyExpandOneCardInSequenceThreeCards() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    // game.getPlayer(Direction.WEST).init(new String[] { "A", "5", "Q" });
    // game.getPlayer(Direction.NORTH).init(new String[] { "2", "4", "6" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "J", "9", "10" });
    // game.getPlayer(Direction.EAST).init(new String[] { "K", "7", "8" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertEquals(3, s.getStack().size());
    assertTrue(s.getStack().contains(node.children.get(1)));
    assertTrue(node.children.get(1).isPruned());
View Full Code Here

    System.out.println(node.children.get(2).getCardPlayed());
  }

  public void testOnlyExpandFirstCardInSequenceThreeCardsOutOfOrder() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    // game.getPlayer(Direction.WEST).init(new String[] { "A", "5", "Q" });
    // game.getPlayer(Direction.NORTH).init(new String[] { "2", "4", "6" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "10", "9", "J" });
    // game.getPlayer(Direction.EAST).init(new String[] { "K", "7", "8" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertEquals(3, s.getStack().size());
    assertTrue(s.getStack().contains(node.children.get(0)));
    assertTrue(node.children.get(0).isPruned());
View Full Code Here

    assertFalse(node.children.get(2).isPruned());
  }

  public void testOnlyExpandFirstCardInSequenceThreeCardsOutOfOrder2() {
    Node node = new Node(null);
    Deal game = new Deal(NoTrump.i());
    // game.getPlayer(Direction.WEST).init(new String[] { "A", "5", "Q" });
    // game.getPlayer(Direction.NORTH).init(new String[] { "2", "4", "6" });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new String[] { "9", "10", "J" });
    // game.getPlayer(Direction.EAST).init(new String[] { "K", "7", "8" });
    game.setNextToPlay(Direction.SOUTH_DEPRECATED);
    DoubleDummySolver s = new DoubleDummySolver(game);
    s.examinePosition(node);
    assertEquals(3, s.getStack().size());
    assertTrue(s.getStack().contains(node.children.get(0)));
    assertTrue(node.children.get(0).isPruned());
View Full Code Here

TOP

Related Classes of org.gnubridge.core.Deal

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.