Создание функции подсчета очков в игре

Игра "Очко". Подсчет суммы

Продолжаем писать код для нашей небольшой и простенькой игрульки "Очко". И в этот раз озаботимся подсчетами очков. О том, как создали колоду и раздали карты, можно прочесть в статье Игра "Очко". Начало. Колода карт и раздача.

Как посчитать сумму набранных очков

Прежде всего, следует определиться с тем, что подсчет суммы будет производиться не однократно и не для одного игрока, поэтому очевидным будет создать для этого специальную функцию и объявить переменную sum (сумма). Arr же - параметр функции - массив, содержащий выпавшие карты того или иного игрока.

function getSumm(arr){
var sum=0;

Сразу же опишем специальные условия - по правилам игры, Туз ("А") - это 11 очков, но если игроку выпадает сразу 2 туза и у него больше нет карт, то это 21. Соответственно, это частный случай. Запишем это в виде кода:

if((arr[0]=="A")&&(arr[1]=="A")&&(arr.length==2))
{sum=21;}

В противном случае, если на руках не 2 туза, необходимо выполнить перебор каждой карты - цикл for. Он будет иметь следующий вид:

else {
for(var i = 0; i < arr.length; i++)
{
if (arr[i]=="J"){sum+=2}
else if (arr[i]=="Q"){sum+=3}
else if (arr[i]=="K"){sum+=4}
else if (arr[i]=="A"){sum+=11}
else
{sum += arr[i]}
}}

То есть, мы задали значения для каждой конкретной карты J,Q,K,A и указали, что если выпавшая карта не является одной из вышеперечисленных - следует к сумме плюсовать значение из массива карт. Это возможно лишь из-за того, что в прошлый раз в статье Игра &quot;Очко&quot;. Начало. Колода карт и раздача, мы задали значение некоторых позиций массива cards без кавычек - JavaScript расценивает их как цифры.

cards = [
["J", "Q","K",6,7,8,9,10,"A"],//пики
["J", "Q","K",6,7,8,9,10,"A"],//крести
["J", "Q","K",6,7,8,9,10,"A"],//буби
["J", "Q","K",6,7,8,9,10,"A"],//черви
];

Итого, получился такой нехитрый код:

function getSumm(arr){
var sum=0;
if((arr[0]=="A")&&(arr[1]=="A")&&(arr.length==2))
{sum=21;}
else {
for(var i = 0; i < arr.length; i++)
{
if (arr[i]=="J")
{sum+=2}
else if (arr[i]=="Q")
{sum+=3}
else if (arr[i]=="K")
{sum+=4}
else if (arr[i]=="A")
{sum+=11}

else
{sum += arr[i]}
}
}

return sum;

}