This calculator evaluates balanced hands to determine if they should open a strong 1NT (15-17 points).


  • Enter a (semi)balanced hand and hit "Calculate" when done.
  • Tens ("T" or "10"), nines and eights are evaluated, so include them if desired.
  • Unsorted suits like "342" instead of "432" will not be recognized.

    " size=10>
    " >
    ">
    ">

       

    The hand you submitted is not 13 cards. Please try again.

"; $ValidateHand = false; } else if (strlen($spades) <= 1 or strlen($hearts) <= 1 or strlen($diamonds) <= 1 or strlen($clubs) <= 1 or strlen($spades) > 5 or strlen($hearts) > 5 or strlen($diamonds) > 6 or strlen($clubs) > 6) { echo "
Sorry, the hand you submitted is too unbalanced. No singletons, voids, 6-card majors or 7-card minors are allowed. Please modify the hand and try again.
"; $ValidateHand = false; } } if ($ValidateHand == true) { echo "
"; $db=mysqli_connect("localhost","bridgebu_bridgebu", "WGhZ45kYKs!G", "bridgebu_bridgebu"); $points1 = mysqli_query($db, "select Points from NT where suit = '$spades'"); $points2 = mysqli_query($db, "select Points from NT where suit = '$hearts'"); $points3 = mysqli_query($db, "select Points from NT where suit = '$diamonds'"); $points4 = mysqli_query($db, "select Points from NT where suit = '$clubs'"); $rowCount1 = mysqli_num_rows($points1); $rowCount2 = mysqli_num_rows($points2); $rowCount3 = mysqli_num_rows($points3); $rowCount4 = mysqli_num_rows($points4); $rowSum = $rowCount1 + $rowCount2 + $rowCount3 + $rowCount4; if ($rowSum != 4) { echo '
Sorry, the hand you submitted contains duplicate and/or unallowed values. The following card symbols are recognized: AKQJT98765432. Please try again.
'; } else { $points1 = $points1->fetch_row()[0]; $points2 = $points2->fetch_row()[0]; $points3 = $points3->fetch_row()[0]; $points4 = $points4->fetch_row()[0]; $totalpoints = $points1 + $points2 + $points3 + $points4; $hcp = $totalpoints / 25; // Add points for all 4 aces if (stristr ($spades, "A") && stristr ($hearts, "A") && stristr ($diamonds, "A") && stristr ($clubs, "A")) { $hcp = $hcp + 0.8; } echo "NT Value: $hcp points

Open 1NT (15.00 - 17.99)?:"; if ($hcp < 15 || $hcp >= 18 // no two-suited major hands || (strlen($spades) == 5 && strlen(hearts) == 4) || (strlen($spades) == 4 && strlen(hearts) == 5) // no super-strong spades or hearts || (strlen($spades) == 5 && $points1 > 213) || (strlen($hearts) == 5 && $points1 > 248) // no strong spades and weak side suits (AQTxx needs Qx) || (strlen($spades) == 5 && $points1 > 163 && $points2 < 48) || (strlen($spades) == 5 && $points1 > 163 && $points3 < 48) || (strlen($spades) == 5 && $points1 > 163 && $points4 < 48) // no strong hearts and weak side suits (AQTxx needs Qx) || (strlen($hearts) == 5 && $points1 > 163 && $points1 < 48) || (strlen($hearts) == 5 && $points1 > 163 && $points3 < 48) || (strlen($hearts) == 5 && $points1 > 163 && $points4 < 48)) {echo "No";} else {echo "Yes";} } mysqli_close($db); } ?> Analysis:

    "; $db=mysqli_connect("localhost","bridgebu_bridgebu", "WGhZ45kYKs!G", "bridgebu_bridgebu"); $SpadeComments1 = mysqli_query($db, "select Comment1 from Comments where suit = '$spades'"); $SpadeComments2 = mysqli_query($db, "select Comment2 from Comments where suit = '$spades'"); $HeartComments1 = mysqli_query($db, "select Comment1 from Comments where suit = '$hearts'"); $HeartComments2 = mysqli_query($db, "select Comment2 from Comments where suit = '$hearts'"); $DiamondComments1 = mysqli_query($db, "select Comment1 from Comments where suit = '$diamonds'"); $DiamondComments2 = mysqli_query($db, "select Comment2 from Comments where suit = '$diamonds'"); $ClubComments1 = mysqli_query($db, "select Comment1 from Comments where suit = '$clubs'"); $ClubComments2 = mysqli_query($db, "select Comment2 from Comments where suit = '$clubs'"); $SpadeComments1 = $SpadeComments1->fetch_row()[0]; $SpadeComments2 = $SpadeComments2->fetch_row()[0]; $HeartComments1 = $HeartComments1->fetch_row()[0]; $HeartComments2 = $HeartComments2->fetch_row()[0]; $DiamondComments1 = $DiamondComments1->fetch_row()[0]; $DiamondComments2 = $DiamondComments2->fetch_row()[0]; $ClubComments1 = $ClubComments1->fetch_row()[0]; $ClubComments2 = $ClubComments2->fetch_row()[0]; mysqli_close($db); if (strlen($SpadeComments1) || strlen($SpadeComments2)) { echo "
  • $SpadeComments1 spade$SpadeComments2"; } if (strlen($HeartComments1) || strlen($HeartComments2)) { echo "
  • $HeartComments1 heart$HeartComments2"; } if (strlen($DiamondComments1) || strlen($DiamondComments2)) { echo "
  • $DiamondComments1 diamond$DiamondComments2"; } if (strlen($ClubComments1) || strlen($ClubComments2)) { echo "
  • $ClubComments1 club$ClubComments2"; } if (stristr ($spades, "A") && stristr ($hearts, "A") && stristr ($diamonds, "A") && stristr ($clubs, "A")) { echo "
  • Add about one point for having all four aces."; } if (strlen($spades) == 5 && strlen($hearts) == 4) { echo "
  • 5422 is not the right shape for opening in no-trumps."; } if (strlen($hearts) == 5 && strlen($spades) == 4) { echo "
  • 4522 is not the right shape for opening in no-trumps."; } if (strlen($spades) == 5 && $points1 > 213) { echo "
  • The spade suit is too strong for a 1NT opening."; } if (strlen($spades) == 5 && $points1 > 163 && ($points2 < 48 || $points3 < 48 || $points4 < 48)) { echo "
  • The point distribution in the hand is too unbalanced with such a strong 5-card major. "; if ($hcp >= 15 && $hcp < 18) {echo "Open 1S instead.";} } if (strlen($hearts) == 5 && $points2 > 248) { echo "
  • The heart suit is too strong for a 1NT opening."; } if (strlen($hearts) == 5 && $points2 > 163 && ($points1 < 48 || $points3 < 48 || $points4 < 48)) { echo "
  • The point distribution in the hand is too unbalanced with such a strong 5-card major. "; if ($hcp >= 15 && $hcp < 18) {echo "Open 1H instead.";} } echo "
"; } ?>

See also