Показать сообщение отдельно
Старый 22.02.2017, 15:01
Eyeder вне форума Посмотреть профиль Отправить личное сообщение для Eyeder Найти все сообщения от Eyeder
  № 3  
Ответить с цитированием
Eyeder

Регистрация: Feb 2017
Сообщений: 2
Спасибо, учел Ваши замечания, и правда упустил этот момент в ночи кодинга, исправил =)
Но, к сожалению, проблему это не решило.
С утра подумал, что незачем заного вызывать функцию заточки первого (enFirst()) при неудаче в (enRest()),
т.к. в случае неудачи цикл начнет выполняться заного так или иначе.
В итоге:
Код AS3:
function enchantingFour(event: MouseEvent): void { //Нажимаем на кнопку
 
	enFirst();
	//При успешной заточке на +10 вывод в динамическое текстовое поле количества попыток заточки первого ...
	//...и обнуление переменных для повторения заточки с нуля.
	memo.text = tries + " Попыток";
	enchant = 0;
	tries = 0;
}
function enFirst(): void { //Точим первое
	while (enchant < 10) { //До тех пор, пока не заточится на + 10
		chance1 = Math.random(); //Шанс заточки 75%
		if (chance1 * 100 < 76) { //Если успешно заточилось первое
			enchant++; //Прибавляем уровень заточки
			tries++; //Увеличиваем счетчик попыток заточки первого
			trace("ПЕРВОЕ - удачно");
			enRest(); //Точим остальные
 
		} else { //Если не заточилось первое
			enchant = 0; //Сбрасываем заточку
			tries++; //Увеличиваем счетчик попыток заточки первого
			trace("ПЕРВОЕ - НЕудачно");
		}
	}
}
function enRest(): void { //Точим другие
	chance2 = Math.random(); //Шанс 75%
	if (chance2 * 100 < 76) { //Если успешно заточилось второе, точим третье
		trace("второе - удачно");
		chance3 = Math.random(); //Шанс 75%
		if (chance3 * 100 < 76) {
			trace("третье - удачно"); //Если успешно заточилось третье, точим четвертое
			chance4 = Math.random(); //Шанс 75%
			if (chance4 * 100 < 76) {
				trace("четвертое - удачно"); //Если успешно заточилось и четвертое...
				enRest(); //...Возвращаемся к заточке со второго
			} else {
				trace("четвертое - НЕУДАЧНО"); //Если не заточилось четвертое...
 
			}
		} else {
			trace("третье - НЕУДАЧНО"); //Если не заточилось третье...
 
		}
	} else {
		trace("второе - НЕУДАЧНО"); //Если не заточилось второе...
 
	}
}
Трейсом отследил выполнение программы, шаги идут верно. Вроде работает. Поправьте, если не прав =)


Последний раз редактировалось Eyeder; 22.02.2017 в 15:02. Причина: исправил теги