Flash中随机数让几个事情按照一定概率发生

16 篇文章 0 订阅
8 篇文章 0 订阅

目录

一、目的:

1、总共几个动物,每个动物有一定的概率开始叫

一、自己操作:

1、成功:

①思路:

①声明变量:动物叫声的概率+动物总共叫的次数

①变量初始化 

①随机概率的处理 

①运行结果:可以看出,将概率为0的,那么这个动物基本不会叫了,叫的次数为0

1、失败:不能每次都让第一个动物开始,这样会造成第一个动物成功最多

①因为想将随机某个动物叫和这个动物叫的概率放在一起,导致出现问题


一、目的:

1、总共几个动物,每个动物有一定的概率开始叫

 

一、自己操作:

1、成功:

①思路:

a、动物从第一个开始,成功了,就开始第一个动物叫;概率失败了,就开始判断第二个动物的概率,依照第一个动物(不是按照失败的例子里面,一次性考虑好几个动物,而是每次判断当前动物的概率,失败就开始下一个动物)

b、如果动物失败了,那就下一个动物进行测试,直到某个动物成功才停止,如此目的让每次会有动物能够叫

c、每个动物概率只有2中情况,成功或者失败,成功就执行动作,失败就下一个动物进行判断,直到动物叫才停止

①声明变量:动物叫声的概率+动物总共叫的次数

 

​
//动物出现的概率
var probability_game0_animal0:int;
var probability_game0_animal1:int;
var probability_game0_animal2:int;
var probability_game0_animal3:int;
var probability_game0_animal4:int;
var probability_game0_animal5:int;
var probability_game0_animal6:int;

//每个动物出现的次数
var game0_animal0_showNum:int;
var game0_animal1_showNum:int;
var game0_animal2_showNum:int;
var game0_animal3_showNum:int;
var game0_animal4_showNum:int;
var game0_animal5_showNum:int;
var game0_animal6_showNum:int;

//=====================================================================================
//测试2::
var current_animal:int = 0;
var animal_total:int = 7;//动物总数

//=====================================================================================

​

①变量初始化 

 

 


	probability_game0_animal0 = 0;
	probability_game0_animal1 = 0;
	probability_game0_animal2 = 80;
	probability_game0_animal3 = 70;
	probability_game0_animal4 = 60;
	probability_game0_animal5 = 50;
	probability_game0_animal6 = 40;

	game0_animal0_showNum = 0;
	game0_animal1_showNum = 0;
	game0_animal2_showNum = 0;
	game0_animal3_showNum = 0;
	game0_animal4_showNum = 0;
	game0_animal5_showNum = 0;
	game0_animal6_showNum = 0;

①随机概率的处理 

 

//=====================================================================================
//测试3:准备处理每个动物按照概率来叫;
//功能:随机动物叫
function Random_animalSound()
{
	//随机概率:0到100
	var MaxNum:int = 100;
	var randomNum:int = Math.random() * MaxNum;
	trace("==================================");
	trace("randomNum:"+randomNum);

	if (randomNum<0)
	{
		return;
	}

	//动物也是按照顺序叫的,先是第一个,判断他是否成功,如果成功就开始叫,如果失败,就下一个动物进行判断是否能叫
	current_animal = current_animal % animal_total;
	trace("current_animal:"+current_animal);
	
	//动物叫的概率
	var probability:int=0;
		
	switch (current_animal)
		{
			case 0 :
				probability=probability_game0_animal0;
				break;
			case 1 :
				probability=probability_game0_animal1;
				break;
			case 2 :
				probability=probability_game0_animal2;
				break;
			case 3 :
				probability=probability_game0_animal3;
				break;
			case 4 :
				probability=probability_game0_animal4;
				break;
			case 5 :
				probability=probability_game0_animal5;
				break;
			case 6 :
				probability=probability_game0_animal6;
				break;
		}

	if (randomNum<probability)
	{
		trace("current_animal:"+current_animal+":成功");
		switch (current_animal)
		{
			case 0 :
				game0_animal0_showNum++;
				break;
			case 1 :
				game0_animal1_showNum++;
				break;
			case 2 :
				game0_animal2_showNum++;
				break;
			case 3 :
				game0_animal3_showNum++;
				break;
			case 4 :
				game0_animal4_showNum++;
				break;
			case 5 :
				game0_animal5_showNum++;
				break;
			case 6 :
				game0_animal6_showNum++;
				break;
		}

		current_animal++;

		trace("game0_animal0_showNum:"+game0_animal0_showNum);
		trace("game0_animal1_showNum:"+game0_animal1_showNum);
		trace("game0_animal2_showNum:"+game0_animal2_showNum);
		trace("game0_animal3_showNum:"+game0_animal3_showNum);
		trace("game0_animal4_showNum:"+game0_animal4_showNum);
		trace("game0_animal5_showNum:"+game0_animal5_showNum);
		trace("game0_animal6_showNum:"+game0_animal6_showNum);
	}
	else
	{
		trace("current_animal:"+current_animal+":失败");
		current_animal++;

		trace("game0_animal0_showNum:"+game0_animal0_showNum);
		trace("game0_animal1_showNum:"+game0_animal1_showNum);
		trace("game0_animal2_showNum:"+game0_animal2_showNum);
		trace("game0_animal3_showNum:"+game0_animal3_showNum);
		trace("game0_animal4_showNum:"+game0_animal4_showNum);
		trace("game0_animal5_showNum:"+game0_animal5_showNum);
		trace("game0_animal6_showNum:"+game0_animal6_showNum);
		
		//如果动物失败了,那就下一个动物进行测试,直到某个动物成功才停止,如此目的让每次会有动物能够叫
		Random_animalSound();
	}
	
}

①运行结果:可以看出,将概率为0的,那么这个动物基本不会叫了,叫的次数为0

 

1、失败:不能每次都让第一个动物开始,这样会造成第一个动物成功最多

①因为想将随机某个动物叫和这个动物叫的概率放在一起,导致出现问题

//功能:随机动物叫
function Random_animalSound()
{
	var MaxNum:int = 100;
	var randomNum:int = Math.random() * MaxNum;
	trace("==================================");
	trace("randomNum:"+randomNum);
	//randomNum=94

	//probability_game0_animal0 = 50;
	//probability_game0_animal1 = 50;
	//probability_game0_animal2 = 50;
	//probability_game0_animal3 = 50;
	//probability_game0_animal4 = 50;
	//probability_game0_animal5 = 50;
	//probability_game0_animal6 = 50;

	if (randomNum<0)
	{
		return;
	}

	//animal0叫的几率
	if (GetAnimal(probability_game0_animal0))
	{
		game0_animal0_showNum++;
	}
	else
	{
		//animal1叫的几率
		if (GetAnimal(probability_game0_animal1))
		{
			game0_animal1_showNum++;
		}
		else
		{
			//animal2叫的几率
			if (GetAnimal(probability_game0_animal2))
			{
				game0_animal2_showNum++;
			}
			else
			{
				//animal3叫的几率
				if (GetAnimal(probability_game0_animal3))
				{
					game0_animal3_showNum++;
				}
				else
				{
					//animal4叫的几率
					if (GetAnimal(probability_game0_animal4))
					{
						game0_animal4_showNum++;
					}
					else
					{
						//animal5叫的几率
						if (GetAnimal(probability_game0_animal5))
						{
							game0_animal5_showNum++;
						}
						else
						{
							//animal6叫的几率
							if (GetAnimal(probability_game0_animal6))
							{
								game0_animal6_showNum++;
							}
							else
							{
								Random_animalSound();
							}
						}
					}
				}
			}
		}
	}

	trace("game0_animal0_showNum:"+game0_animal0_showNum);
	trace("game0_animal1_showNum:"+game0_animal1_showNum);
	trace("game0_animal2_showNum:"+game0_animal2_showNum);
	trace("game0_animal3_showNum:"+game0_animal3_showNum);
	trace("game0_animal4_showNum:"+game0_animal4_showNum);
	trace("game0_animal5_showNum:"+game0_animal5_showNum);
	trace("game0_animal6_showNum:"+game0_animal6_showNum);


}
//功能:动物是否能成功  
//参数1:传入的几率
//返回值:true:成功  false:失败
function GetAnimal(_e:int):Boolean
{
	var result_is:Boolean;

	var randomNum:int = Math.random() * 100;
	if (randomNum<_e)
	{
		result_is = true;
	}
	else
	{
		result_is = false;
	}

	return result_is;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值