-
-
Save rdkempt/dd326f94cecf9d3d3e793a3b0e146dd0 to your computer and use it in GitHub Desktop.
Episode 214 Coding Challenge in dominucco's Favorite Language
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Usage: php blackjack.php 10 A,9 | |
// Output: Stand | |
// Lookup tables | |
$lkp_dealer = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'A']; | |
$lkp_user = [ | |
'8', '9', '10', '11', '12', '13', '14', '15', '16', '17', 'A,2', 'A,3', 'A,4', 'A,5', 'A,6', | |
'A,7', 'A,8', 'A,9', '2,2', '3,3', '4,4', '5,5', '6,6', '7,7', '8,8', '9,9', '10,10', 'A,A', | |
]; | |
$lkp_strategy = [ | |
'H' => 'Hit', | |
'S' => 'Stand', | |
'D' => 'Double, otherwise Hit', | |
'DS' => 'Double, otherwise Stand', | |
'SP' => 'Split', | |
'XH' => 'Surrender, otherwise Hit', | |
'XP' => 'Surrender, otherwise Split', | |
'XS' => 'Surrender, otherwise Stand', | |
]; | |
// Read in our strategy chart | |
$lkp_chart = array_map('str_getcsv', file('chart.csv')); | |
// Assign arguments to variables with clearer names | |
$input_dealer = $argv[0]; | |
$input_user = $argv[1]; | |
// If the user input arguments exist in our lookup tables | |
if ($key_dealer = array_search($input_dealer, $lkp_dealer) && $key_user = array_search($input_user, $lkp_user)) { | |
echo $lkp_strategy[$lkp_chart[$lkp_dealer[$key_dealer]][$lkp_user[$key_user]]]; | |
} else { | |
echo 'Invalid combination.'; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
H | H | H | H | H | H | H | H | H | H | |
---|---|---|---|---|---|---|---|---|---|---|
H | D | D | D | D | H | H | H | H | H | |
D | D | D | D | D | D | D | D | H | H | |
D | D | D | D | D | D | D | D | D | D | |
H | H | S | S | S | H | H | H | H | H | |
S | S | S | S | S | H | H | H | H | H | |
S | S | S | S | S | H | H | H | H | H | |
S | S | S | S | S | H | H | H | X/H | X/H | |
S | S | S | S | S | H | H | X/H | X/H | X/H | |
S | S | S | S | S | S | S | S | S | X/S | |
H | H | H | D | D | H | H | H | H | H | |
H | H | H | D | D | H | H | H | H | H | |
H | H | D | D | D | H | H | H | H | H | |
H | H | D | D | D | H | H | H | H | H | |
H | D | D | D | D | H | H | H | H | H | |
S | DS | DS | DS | DS | S | S | H | H | H | |
S | S | S | S | S | S | S | S | S | S | |
S | S | S | S | S | S | S | S | S | S | |
SP | SP | SP | SP | SP | SP | H | H | H | H | |
SP | SP | SP | SP | SP | SP | H | H | H | H | |
H | H | H | SP | SP | H | H | H | H | H | |
D | D | D | D | D | D | D | D | H | H | |
SP | SP | SP | SP | SP | H | H | H | H | H | |
SP | SP | SP | SP | SP | SP | H | H | H | H | |
SP | SP | SP | SP | SP | SP | SP | SP | SP | XP | |
SP | SP | SP | SP | SP | S | SP | SP | S | S | |
S | S | S | S | S | S | S | S | S | S | |
SP | SP | SP | SP | SP | SP | SP | SP | SP | SP |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment