viaductmedia / roundrobin-scheduler
轮询锦标赛工具。Laravel 兼容。
dev-master
2021-09-08 12:02 UTC
Requires
- php: >=7
Requires (Dev)
- laravel/framework: ^7.22
- mockery/mockery: ^1.4
- orchestra/testbench: ^5.3
- phpunit/phpunit: ^9.2
This package is auto-updated.
Last update: 2024-09-08 19:16:36 UTC
README
您可以轻松地为锦标赛创建轮询轮次。
Laravel 兼容。
有两种方法。一个是 BergerAlgorithm($teams),它接受一个团队数组作为参数并返回一组比赛。
给定一个团队数组,例如
['Juventus', 'Milan', 'Roma', 'Napoli', 'Inter']
该方法返回一个多级数组,其中第一级是比赛日
[
[
['REST', 'Juventus'], ['Inter', 'Milan'], ['Napoli', 'Roma']
],
[
['Juventus', 'Milan'], ['Roma', 'REST'], ['Napoli', 'Inter']
],
[
['Roma', 'Juventus'], ['Milan', 'Napoli'], ['REST', 'Inter']
],
[
['Juventus', 'Napoli'], ['Inter', 'Roma'], ['REST', 'Milan']
],
[
['Inter', 'Juventus'], ['Napoli', 'REST'], ['Roma', 'Milan']
]
]
如果团队数量是奇数,它会添加一个虚拟团队。
另一个是 distributeAmongRounds($teams, $rounds),它接受一个团队数组和一个期望的轮次数作为参数。我建议在提供给函数之前对团队数据集进行 shuffle()。
给定一个团队数组如下,并希望有 '3' 个轮次
['Milan', 'Roma', 'Juventus', 'Napoli', 'Inter', 'Lazio', 'Fiorentina', 'Udinese', 'Sampdoria', 'Genoa'],
该方法返回一个多级数组
[
['Genoa', 'Fiorentina', 'Napoli', 'Milan'],
['Sampdoria', 'Lazio', 'Juventus'],
['Udinese', 'Inter', 'Roma']
]
安装
composer require lucagentile\roundrobin-scheduler
Laravel
在 config/app.php 的 'providers' 下添加 ServiceProvider 类名称 https://laravel.net.cn/docs/5.4/providers#registering-providers
Gautile\RoundRobin\RoundRobinSchedulerServiceProvider::class
然后在 'aliases' 下添加 Facade 的别名
'RoundRobinScheduler' => Gautile\RoundRobin\Facades\RoundRobinScheduler::class,
许可证
MIT