Package org.gnubridge.core

Examples of org.gnubridge.core.Deal


  public void testEquivaltenceVariousPruneStrategies() {
    for (int cardDeal = 0; cardDeal < DEALS_TO_TRY; cardDeal++) {
      monkeys = new ArrayList<SearchMonkey>();
      Trump trump = determineTrump(cardDeal);
      g = new Deal(trump);
      GameUtils.initializeRandom(g, CARDS_TO_DEAL);
      System.out.println("*********** DEAL " + cardDeal + " ***********");
      g.playOneTrick(); //somewhat randomizes who's to move next
      g.printHands();
      g.printHandsDebug();
View Full Code Here


    int CARDS_TO_DEAL = 4;
    int DEALS_TO_TRY = 25;
    for (int cardDeal = 0; cardDeal < DEALS_TO_TRY; cardDeal++) {
      monkeys = new ArrayList<SearchMonkey>();
      Trump trump = determineTrump(cardDeal);
      g = new Deal(trump);
      GameUtils.initializeRandom(g, CARDS_TO_DEAL);
      System.out.println("*********** DEAL " + cardDeal + " ***********");
      g.playOneTrick(); //somewhat randomizes who's to move next
      g.printHands();
      g.printHandsDebug();
View Full Code Here

    Card secondMove = second.getBestMove();
    System.out.println("#####>  Search strategies " + first + " and " + second
        + " differ on what is the best move ( " + firstMove + " versus " + secondMove + "). "
        + "Now comparing tricks taken if each evaluates the other's best move.");

    Deal firstMovePlayed = originalGame.duplicate();
    firstMovePlayed.play(firstMove);
    firstMovePlayed.printHandsDebug();
    SearchMonkey firstProxy = new SearchMonkey(first.config);
    SearchMonkey secondProxy = new SearchMonkey(second.config);
    firstProxy.runSearch(firstMovePlayed.duplicate());
    secondProxy.runSearch(firstMovePlayed.duplicate());
    firstProxy.printAsTree();
    secondProxy.printAsTree();
    assertEquals("played " + firstMove + " as recommended by " + firstProxy, firstProxy.getNorthSouthTricks(),
        secondProxy.getNorthSouthTricks());
    int tricksTakenIfFirstMovePlayed = firstProxy.getNorthSouthTricks();

    Deal secondMovePlayed = originalGame.duplicate();
    secondMovePlayed.play(secondMove);
    firstProxy.runSearch(secondMovePlayed);
    secondProxy.runSearch(secondMovePlayed);
    assertEquals("played " + firstMove + " as recommended by " + secondProxy, firstProxy.getNorthSouthTricks(),
        secondProxy.getNorthSouthTricks());
    int tricksTakenIfSecondMovePlayed = firstProxy.getNorthSouthTricks();
View Full Code Here

    assertEquals(1, s.getBestMoves().size());
  }

  public void testIfCannotBeatPlayLowestToColorPruningNoConflictWithSequencePruning() {

    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Ace.of(Spades.i()), Nine.of(Spades.i()) });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Five.of(Spades.i()), Four.of(Spades.i()) });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });

    game.setNextToPlay(Direction.WEST_DEPRECATED);
    game.play(Ace.of(Spades.i()));
    DoubleDummySolver pruned = new DoubleDummySolver(game.duplicate());
    Node root = new Node(null);
    pruned.examinePosition(root);
    assertNotNull(root.getBestMove());

  }
View Full Code Here

  }

  public void testShortCircuitIfRootOnlyHasOneValidMove() {

    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Ace.of(Spades.i()), Nine.of(Spades.i()) });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Six.of(Spades.i()), Four.of(Hearts.i()) });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });

    game.setNextToPlay(Direction.WEST_DEPRECATED);
    game.play(Ace.of(Spades.i()));
    DoubleDummySolver pruned = new DoubleDummySolver(game.duplicate());
    pruned.setTerminateIfRootOnlyHasOneValidMove(true);
    pruned.search();
    assertEquals(1, pruned.getPositionsExamined());

  }
View Full Code Here

  }

  public void testIfAllMovesTheSameChooseLowestValueCard() {

    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Ace.of(Spades.i()), Queen.of(Spades.i()) });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Six.of(Spades.i()), Four.of(Spades.i()) });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });

    game.setNextToPlay(Direction.WEST_DEPRECATED);
    DoubleDummySolver pruned = new DoubleDummySolver(game.duplicate());
    //  pruned.useAlphaBetaPruning(false);
    pruned.search();
    assertEquals(Queen.of(Spades.i()), pruned.getRoot().getBestMove().getCardPlayed());

    Deal gameWithCardsFlipped = new Deal(NoTrump.i());
    gameWithCardsFlipped.getPlayer(Direction.WEST_DEPRECATED).init(
        new Card[] { Queen.of(Spades.i()), Ace.of(Spades.i()) });
    gameWithCardsFlipped.getPlayer(Direction.NORTH_DEPRECATED).init(
        new Card[] { Six.of(Spades.i()), Four.of(Spades.i()) });
    gameWithCardsFlipped.getPlayer(Direction.EAST_DEPRECATED).init(
        new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
    gameWithCardsFlipped.getPlayer(Direction.SOUTH_DEPRECATED).init(
        new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });

    gameWithCardsFlipped.setNextToPlay(Direction.WEST_DEPRECATED);
    DoubleDummySolver triangulate = new DoubleDummySolver(gameWithCardsFlipped.duplicate());

    //  triangulate.useAlphaBetaPruning(false);
    triangulate.search();
    assertEquals(Queen.of(Spades.i()), triangulate.getRoot().getBestMove().getCardPlayed());
View Full Code Here

  }

  public void testIfAllMovesLoseSameChooseLowestValueCard() {

    Deal game = new Deal(NoTrump.i());
    game.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Ace.of(Spades.i()), King.of(Spades.i()) });
    game.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Six.of(Diamonds.i()), Four.of(Hearts.i()) });
    game.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
    game.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });

    game.setNextToPlay(Direction.WEST_DEPRECATED);
    game.play(Ace.of(Spades.i()));
    DoubleDummySolver pruned = new DoubleDummySolver(game.duplicate());
    pruned.search();
    assertEquals(Four.of(Hearts.i()), pruned.getRoot().getBestMove().getCardPlayed());
    Deal gameWithCardsFlipped = new Deal(NoTrump.i());
    gameWithCardsFlipped.getPlayer(Direction.WEST_DEPRECATED).init(
        new Card[] { Ace.of(Spades.i()), King.of(Spades.i()) });
    gameWithCardsFlipped.getPlayer(Direction.NORTH_DEPRECATED).init(
        new Card[] { Four.of(Hearts.i()), Six.of(Diamonds.i()) });
    gameWithCardsFlipped.getPlayer(Direction.EAST_DEPRECATED).init(
        new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
    gameWithCardsFlipped.getPlayer(Direction.SOUTH_DEPRECATED).init(
        new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });

    gameWithCardsFlipped.setNextToPlay(Direction.WEST_DEPRECATED);
    gameWithCardsFlipped.play(Ace.of(Spades.i()));
    DoubleDummySolver triangulate = new DoubleDummySolver(gameWithCardsFlipped.duplicate());
    //triangulate.pruneAlphaBeta = false;
    triangulate.search();
    assertEquals(Four.of(Hearts.i()), triangulate.getRoot().getBestMove().getCardPlayed());

  }
View Full Code Here

        scoringTracker);

  }

  private Deal repositionHandsSoThatSouthIsDeclarer(Auctioneer a, Deal cardHolder) {
    Deal result = new Deal(a.getHighBid().getTrump());
    result.getPlayer(a.getDummyOffsetDirection(North.i())).init(cardHolder.getPlayer(North.i()).getHand());
    result.getPlayer(a.getDummyOffsetDirection(East.i())).init(cardHolder.getPlayer(East.i()).getHand());
    result.getPlayer(a.getDummyOffsetDirection(South.i())).init(cardHolder.getPlayer(South.i()).getHand());
    result.getPlayer(a.getDummyOffsetDirection(West.i())).init(cardHolder.getPlayer(West.i()).getHand());
    result.setNextToPlay(West.i().getValue());
    return result;
  }
View Full Code Here

import org.gnubridge.core.deck.Two;
import org.gnubridge.presentation.GameUtils;

public class TestPositionLookup extends TestCase {
  public void testSameObjectShownTwice() {
    Deal g = new Deal(NoTrump.i());
    GameUtils.initializeSingleColorSuits(g);
    g.playOneTrick();

    PositionLookup pl = new PositionLookup();
    Node node = new Node(null);
    assertFalse(pl.positionEncountered(g, node.getTricksTaken()));
    assertTrue(pl.positionEncountered(g, node.getTricksTaken()));
View Full Code Here

    assertEquals(node.getTricksTaken(), pl.getNode(g));
  }

  @SuppressWarnings("unused")
  public void testOnlyReturnFirstNodeEncountetredForThePosition() {
    Deal g = new Deal(NoTrump.i());
    GameUtils.initializeSingleColorSuits(g);
    g.playOneTrick();

    PositionLookup pl = new PositionLookup();
    Node node = new Node(null);
    boolean justPresentThePosition = pl.positionEncountered(g, node.getTricksTaken());

    Deal identicalTwin = new Deal(NoTrump.i());
    GameUtils.initializeSingleColorSuits(identicalTwin);
    identicalTwin.playOneTrick();

    Node identicalTwinNode = new Node(null);
    assertTrue(pl.positionEncountered(identicalTwin, identicalTwinNode.getTricksTaken()));
    assertEquals(node.getTricksTaken(), pl.getNode(identicalTwin));
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.