![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
работает:
_root.mc_picture[40]._x = 0; _root.mc_picture[40]._y = 0; _root.mc_picture[40]._visible = true; var i:Number = randRange( 0, 52); _root.mc_picture[i]._x = 0; _root.mc_picture[i]._y = 0; _root.mc_picture[i]._visible = true; function randRange(min:Number, max:Number):Number
{
var randomNum:Number = Math.round(Math.random()*(max-min))+min;
return randomNum;
}
ЗЫ и вообще в флешах работает приведение типов? чтобы я, например: int y = (int) i / 13; а то в такой записи у меня float получается: var y:Number = i / 13; ![]()
__________________
fast restart: *((int*)0) = 0; |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Это сообщение оставил Kikasso, но в результате каких то глюков, его сообщения при объединении, попали совсем в другую тему к другому автору.
неравномерно. var arr = [];
var i = 100000;
function randRange(min:Number, max:Number):Number
{
var randomNum:Number = Math.round( Math.random()*(max-min) +min );
return( randomNum );
}
while (i--){
var n = randRange( 49, 52 );
if(!arr[n])arr[n] = 0;
arr[ n ]++;
}
trace ( 49 + ">" + arr[49]);
trace ( 50 + ">" + arr[50]);
trace ( 51 + ">" + arr[51]);
trace ( 52 + ">" + arr[52]);
вот теперь шоколадно: var arr = [];
var i = 100000;
function randRange(min:Number, max:Number):Number
{
var randomNum:Number = Math.floor( Math.random()*( max + 1 - min ) + min );
return( randomNum );
}
while (i--){
var n = randRange( 49, 52 );
if(!arr[n])arr[n] = 0;
arr[ n ]++;
}
trace ( 49 + ">" + arr[49]); //49>25196
trace ( 50 + ">" + arr[50]); //50>24749
trace ( 51 + ">" + arr[51]); //51>24856
trace ( 52 + ">" + arr[52]); //52>25199
Если maх или min не целые числа - округли результат. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
2all: Теперь знаю почему, и такого не повторю.
Часто мы не знаем, что больше, нам надо только получить число из диапазона. function randRange(a:Number, b:Number):Number {
var min:Number = Math.min( a, b);
var max:Number = Math.max( a, b);
return Math.floor( Math.random()*( max + 1 - min )) + min;
}}
function randRange(a:Number, b:Number):Number {
var min:Number = Math.ceil( Math.min( a, b));
var max:Number = Math.floor(Math.max( a, b));
if( max < min ) return null;
return Math.floor( Math.random()*( max + 1 - min )) + min;
}
trace( randRange( 49, 52 )); //ok
trace( randRange( 52, 49 )); //ok
trace( randRange( 49.1, 49.2 )); //null
trace( randRange( 49.1, 50.2 )); //только 50
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|