function step(state, a) {
if (isValidSum(state.playerSum)) {
switch(a) {
case 'STICK':
const dealerSum = getFinalDealerValue(state.dealerSum)
const newState = { ...state, dealerSum }
return { newState, reward: getRewardFromState(newState) }
break;
case 'HIT':
const playerSum = addCard(state.playerSum)
return { newState: { ...state, playerSum }, reward: isValidSum(playerSum) ? 0 : -1 }
break;
}
} else
return { newState: state, reward: 0 }
}