Страница 1 из 1

Подсчет очков в блэк джек

Добавлено: 07 апр 2011, 16:01
Yura_ua
Всем доброго времени суток. Столкнулся с проблемой подсчета очков игрока, а именно с тем, как правильно считать туз: если сума у игрока < 10 то туз 11, если больше - то 1.
Вот как я пробую подсчитать:

Код: Выделить всё

var score: int = 0;
			var i: int;
			for ( i = 0; i < cards.length; i++ )
			{
				if ( cards[i].rank != "Ace" )
				{
					score += cards[i].value; 
				}
			}
			
			for ( i = 0; i < cards.length; i++)
			{
				if ( (cards[i].rank == "Ace") && (this.sum <= 10) )
					{
						score += 11;
					}
					else
						if ( cards[i].rank == "Ace" )
							score += 1;
			}
подсчитываю сумму каждый раз, когда игроку сдается карта. по идее,должно работать, но подсчитывает неверно :( , и как я заметил, когда первая карта у игрока туз, или когда 3-я карта туз, а остальные меньше 10 . Может кто подсказать верный алгоритм подсчета, или исправить ошибку в этом?

Re: Подсчет очков в блэк джек

Добавлено: 08 апр 2011, 01:11
BulldozerBSG
А где считается this.sum ?

Re: Подсчет очков в блэк джек

Добавлено: 08 апр 2011, 08:41
Yura_ua
в том же класе в методе

Код: Выделить всё

public function takeCard(c: Card):void
		{
			this.cards.push(c);
			this.sum = calculateScore();
		}
calculateScore - в первом посте

Re: Подсчет очков в блэк джек

Добавлено: 08 апр 2011, 12:34
BulldozerBSG
ну я бы заменил "&& (this.sum <= 10)" на что то типа "&& (score <= 10)". Но если score это глобальный счетчик очков карт, а не текущих то это проблема...

Re: Подсчет очков в блэк джек

Добавлено: 08 апр 2011, 14:34
Yura_ua
спасибо, теперь считает верно, score это и есть счетчик текущих карт