protected Bid prepareBid() {
PointCalculator calculator = new PointCalculator(hand);
int minimumBid = getMinimumBidInSuit(unbidSuit);
if (calculator.getCombinedPoints() >= 19) {
Bid bid = new Bid(minimumBid + 1, unbidSuit);
bid.makeGameForcing();
return bid;
}
if ((minimumBid == 2 && !calculator.isBalanced())) {
if (calculator.getCombinedPoints() >= 16 || unbidSuit.isLowerRankThan(opening.getTrump())) {
return new Bid(minimumBid, unbidSuit);