#!/usr/bin/env php
<?php

namespace Wordle;

if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
} else {
    // Composer global required
    require_once __DIR__ . '/../../../autoload.php';
}

// If we don't have words, download them!
if (!file_exists(__DIR__ . '/../resources/4-letter-words.txt')) {
    exec('php ' . __DIR__ . '/download-words', $output, $returnCode);

    if (!empty($output) || $returnCode !== 0) {
        echo implode($output) . "\n";
        exit();
    }
}

use Wordle\Generators\DailyWordGenerator;
use Wordle\Generators\RandomWordGenerator;

$generator = !empty($argv[1])
    ? new RandomWordGenerator($argv[1])
    : new DailyWordGenerator(DailyWordGenerator::DEFAULT_WORD_LENGTH);

if (!empty($argv[2])) {
    $generator->setWordIndex(intval($argv[2]));
}

$wordle = new Wordle($generator);

do {
    $guess = readline('Enter Your Guess: ');

    $wordle->attemptGuess($guess);

    echo $wordle->getOutput();

} while (!$wordle->isValidGuess($guess));
