1. Go to this page and download the library: Download crosseno/builder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
crosseno / builder example snippets
use Crosseno\Builder\StandardBuilderFactory;
use Crosseno\Builder\Policy\FailurePolicy;
use Crosseno\Builder\Policy\WorkBudget;
use Crosseno\Builder\Request\BuildDifficulty;
use Crosseno\Builder\Request\IdempotencyKey;
use Crosseno\Builder\Request\StandardBuildRequestFactory;
use Crosseno\Clues\Catalog\LexicalCatalogClueProvider;
use Crosseno\Core\Grid\GridDimensions;
use Crosseno\Core\ResourceLimits;
use Crosseno\Core\Validation\ValidationProfile;
use Crosseno\Generator\Seed\GenerationSeed;
use Crosseno\Generator\Strategy\GenerationStrategy;
use Crosseno\LanguageEn\EnglishLanguagePack;
use Crosseno\Lexicon\Language\LanguageCode;
$limits = ResourceLimits::standard();
$runtime = EnglishLanguagePack::load($limits);
$provider = new LexicalCatalogClueProvider(
$runtime->catalog(),
$runtime->metadata()->stableKeyAlgorithmVersion,
);
$builder = (new StandardBuilderFactory())->create(
$runtime,
$provider,
new LanguageCode('en'),
);
$request = (new StandardBuildRequestFactory(
strategy: GenerationStrategy::Fast,
difficulty: BuildDifficulty::Easy,
qualityThreshold: 0,
failurePolicy: FailurePolicy::fail(),
workBudget: new WorkBudget(1, 16, 100_000, 100_000),
validationProfile: ValidationProfile::permissive(),
))->create(
new LanguageCode('en'),
new LanguageCode('en'),
new GridDimensions(7, 7),
GenerationSeed::fromInteger(12345),
);
$result = $builder->build(
$request,
new IdempotencyKey('example-12345'),
StandardBuilderFactory::synchronousCancellation(),
);
if (!$result->succeeded()) {
echo $result->failure?->code . ': ' . $result->failure?->message;
var_dump($result->failure?->context, $result->warnings(), $result->fallbacks());
return;
}
$grid = $result->crossword?->grid;
$entries = $result->crossword?->entries();
$clues = $result->clues?->assignments();
use Crosseno\Builder\CrosswordBuilder;
use Crosseno\Builder\Generation\EligibilityBuilder;
use Crosseno\Builder\Pack\PackResolver;
$builder = new CrosswordBuilder(
new PackResolver($packCatalog),
new EligibilityBuilder(),
$generatorFactory,
$clueAssigner,
$qualityEvaluator,
$usageHistory,
$clock,
);