astronati/幻想足球计算器

该库允许用户计算在一场足球比赛后,球队获得的积分/魔法积分。总积分可以通过一些奖金,如防守奖金来修改。

2.0.0 2021-02-19 11:11 UTC

README

Build Status Codacy Badge Codacy Badge Dependency Status Latest Stable Version MIT licensed

幻想足球计算器

该库允许用户计算在一场足球比赛后,球队获得的积分。总积分可以通过一些奖金,如防守奖金来修改。

安装

您可以使用以下命令运行 composer 来安装库及其依赖项:

$ composer require astronati/fantasy-football-calculator

使用方法

当一支幻想球队对阵另一支球队时,该库返回一个结果

  • MatchResult(比赛结果)
  • 当一支幻想球队与其他所有球队比赛时,返回一个简单的 Result(结果)

规则

计算器可以配置不同的规则,以对最终结果应用不同的奖金/惩罚。规则可以应用于单个球队或比赛上下文:查看以下文件夹,了解支持哪些奖金。

每个规则都可以像以下示例中所示那样添加到计算器的配置中。

注意:若要请求其他规则,请提交一个新的 问题

阵容和足球运动员

计算器需要一个或两个阵容:因此开发者必须提供 Formation 实例。

// Prepare formation
$formation = new Formation();
$formation->addFirstString(new Footballer())...

注意:足球运动员抽象类需要由开发者扩展,并设置 code 属性。该 code 属性是由 报价 实例提供的。

请查看示例文件夹中实现的 Footballer 类。

示例

提供了一些示例,以更好地了解如何将此库集成到自己的系统中。

// Configure calculator
$configuration = new Configuration();
$configuration
  ->addRule(RuleFactory::create(RuleFactory::BEST_DEFENDERS_RULE))
  ->addRule(RuleFactory::create(RuleFactory::HOME_RULE))
;
$calculator = new Calculator($quotations, $configuration);
比赛结果

以下代码片段是从 example/sample.php 文件中提取的,展示了如何在比赛中配置计算器。

// Show match results...
$matchResult = $calculator->getMatchResult($formationA, $formationB);
$homeResult = $matchResult->getHomeResult();
echo '(' . $homeResult->getMagicPoints() . ' ' . $homeResult->getBonus() . ') '. $matchResult->getHomeGoals();
结果

以下代码片段是从 example/sample.php 文件中提取的,展示了当幻想球队单独比赛或与其他所有球队比赛时如何配置计算器。

// Show single result...
$singleResult = $calculator->getSingleResult($formation);
echo $singleResult->getMagicPoints() . ' ' . $singleResult->getBonus();

开发

环境需要 phpunit,它已经包含在 dev-dependenciescomposer.json 中。

依赖项

要安装所有模块,只需运行以下命令

$ composer install

测试

测试文件创建在专门的文件夹中,其结构如下,复制 src 结构

.
+-- src
|   +-- [folder-name]
|   |   +-- [file-name].php
|   ...
+-- tests
|   +-- [folder-name]
|   |   +-- [file-name]Test.php

执行以下命令以运行测试套件

$ composer test

执行以下命令以查看代码覆盖率

$ composer coverage

许可证

本软件包是在 MIT 许可协议 下发布的。