Skip to content

Instantly share code, notes, and snippets.

@rdkempt
Created July 21, 2016 19:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rdkempt/dd326f94cecf9d3d3e793a3b0e146dd0 to your computer and use it in GitHub Desktop.
Save rdkempt/dd326f94cecf9d3d3e793a3b0e146dd0 to your computer and use it in GitHub Desktop.
Episode 214 Coding Challenge in dominucco's Favorite Language
<?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.';
}
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