From 6d757b2c7ae8b5b2ed41bb9bf4c1e3b67bd59e3c Mon Sep 17 00:00:00 2001 From: "exercism-solutions-syncer[bot]" <211797793+exercism-solutions-syncer[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 10:49:28 +0000 Subject: [PATCH] [Sync Iteration] go/blackjack/1 --- solutions/go/blackjack/1/blackjack.go | 75 +++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 solutions/go/blackjack/1/blackjack.go diff --git a/solutions/go/blackjack/1/blackjack.go b/solutions/go/blackjack/1/blackjack.go new file mode 100644 index 0000000..4567c1c --- /dev/null +++ b/solutions/go/blackjack/1/blackjack.go @@ -0,0 +1,75 @@ +package blackjack + +// ParseCard returns the integer value of a card following blackjack ruleset. +func ParseCard(card string) int { + switch card { + case "ace": + return 11 + + case "two": + return 2 + + case "three": + return 3 + + case "four": + return 4 + + case "five": + return 5 + + case "six": + return 6 + + case "seven": + return 7 + + case "eight": + return 8 + + case "nine": + return 9 + + case "ten", "jack", "queen", "king": + return 10 + + default: + return 0 + } +} + +// FirstTurn returns the decision for the first turn, given two cards of the +// player and one card of the dealer. +func FirstTurn(card1, card2, dealerCard string) string { + var cardSum = ParseCard(card1) + ParseCard(card2) + var dealerCardValue = ParseCard(dealerCard) + + switch cardSum { + case 22: + return "P" + + case 21: + switch dealerCard { + case "ace", "jack", "queen", "king": + return "S" + + default: + return "W" + } + + case 17, 18, 19, 20: + return "S" + + case 12, 13, 14, 15, 16: + switch { + case dealerCardValue >= 7: + return "H" + + default: + return "S" + } + + default: + return "H" + } +}