Головоломки Flash

         

и рангов для более легкого


// Определяем расклад,

function handValue() {

// Копируем и сортируем карты игрока.

hand = cards.slice();

(1) hand, sort (compareHands) ;

// Создаем массив мастей и рангов для более легкого доступа

//к ним.

suits = new Array();

nums = new Array();

for (i=0; i

suits.push(hand[i].substr(0,1));

nums.push(Number(hand[i].substr(1,2)));

(2)// Проверяем, расположены ли они по возрастанию,

straight = true;





for (i=0; i

if (nums[i]+l != num[i+l]) straight = false;

(3)// Ищем десятку, валета, даму, короля и туза,

if (nums[0] == 1) and (nums[l] == 10) and (nums[2]) == 11)

and (nums[3] == 12) and (nums[4] == 13)) straight = true;

(4)// Выясняем, одной ли масти карты,

flush = true;

for (i=l; i

if (suits[i] != suitstO]) flush = false;

// Создаем массив для подсчета, сколько карт одного

(5)// достоинства находится в раскладе,

counts = new Array ();

for (i=0; i

for (i=0; i

(6)// Используя массив counts, ищем совпадения,

pair = false;

twoPair = false;

threeOfAKind = false;

fourOfAKind = false;

for (i=l; i

// Найдена пара.

if (counts[i] == 2) {

// Найдена вторая пара.

if (pair) {

twoPair = true;

// Найдена только одна пара.

} else {

pair = true;

// Три карты одного достоинства.

} else if (counts[i] == 3) {

threeOfAKind .= true;

// Четыре карты одного достоинства.

} else if (countsfi] == 4) {

fourOfAKind = true;

// Проверяем, есть ли среди совпадающих карт валеты или

(7)// карты более высокого ранга.

jackOrHigher = false;

for (i=l; i

if (((i==l) or (i>10) and (counts[i]>=2)) {

jackOtHigher = true;

(8) // Выясняем, является ли карта более высокого ранга тузом.

hasAce = false; if (counts[1] > 0) hasAce = true;

(9)// Делаем вывод, какой расклад на руках у игрока.
if (straight and flush and hasAce) {

return("Royal Flush");

} else if (straight and flush) {

return("Straight Flush");

} else if (fourOfAKind) {

return("Four-Of-A-Kind");

} else if (pair and threeOfAKind) {

return ("Full House");


Содержание раздела