lortabac/alea

此包的最新版本(dev-master)没有可用的许可信息。

从加权列表中随机选择

dev-master 2013-09-08 14:17 UTC

This package is not auto-updated.

Last update: 2024-09-24 05:40:23 UTC


README

#Alea

一个用于从加权列表中随机选择元素的微型库。

安装

使用 composer

如果您使用 composer,只需将 lortabac/alea 添加到您的 composer.json 文件中。

{
    "require": {
        "lortabac/alea": "dev-master"
    }
}

手动安装

  1. src 目录中的文件复制到您的项目中。

  2. 包含您需要的类(WeightedList.phpDice.php)。

使用方法

加权列表

在加权列表模式下,每个元素被分配一个相对权重。

$criteria = [
	['foo', 50],
	['bar', 30],
	['baz', 20]
];

$weightedList = new Alea\WeightedList($criteria);
$element = $weightedList->getItem();

骰子

在骰子模式下,每个元素都有特定的范围。只指定上限。第一个范围始终从 1 开始。

$criteria = [
    ['foo', 6], // from 1 to 6
    ['bar', 8], // 7 and 8
    ['baz', 12] // from 9 to 12
];

$dice = new Alea\Dice($criteria);
$element = $dice->getItem();

您可以可选地包含骰子滚动。在这种情况下,结果以关联数组的形式给出。

$itemData = $dice->getItem(Alea\Dice::INCLUDE_ROLL);
print_r($itemData);

/*
Array
(
    [roll] => 8
    [item] => bar
)
*/

许可

(MIT 许可证)

版权所有 (C) 2013 Lorenzo Tabacchini

特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向获得软件的人提供软件副本以供其使用,但须遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,源于、因之或与此软件或其使用或其他交易有关。