Example #1
0
function executeProcess(array $argv)
{
    $rebuses = DirItem::inst(__DIR__, 'rebuses.txt')->getTextFileAdapter();
    $MR = PsMathRebus::inst();
    $result = array();
    foreach ($rebuses->getLines() as $rebus) {
        if (starts_with($rebus, '#')) {
            continue;
            //---
        }
        $rebus = $MR->normalize($rebus);
        switch ($MR->rebusState($rebus)) {
            case PsMathRebus::STATE_HAS_ANSWERS:
                dolog("Take rebus answers: {$rebus}");
                $result[$rebus] = $MR->rebusAnswers($rebus);
                break;
            case PsMathRebus::STATE_NO_ANSWERS:
                dolog("Skipping rebus: {$rebus}");
                $result[$rebus] = array();
                break;
            case PsMathRebus::STATE_NOT_REGISTERED:
                dolog("Processing rebus: {$rebus}");
                $result[$rebus] = PsMathRebusSolver::solve($rebus);
                break;
        }
    }
    $ansDI = DirItem::inst(__DIR__, 'answers.txt');
    $ansDI->remove();
    foreach ($result as $rebus => $answers) {
        $ansDI->writeLineToFile($rebus);
        foreach ($answers as $answer) {
            $ansDI->writeLineToFile($answer);
        }
        $ansDI->writeLineToFile();
    }
    /*
     * Если передан параметр копирования, то скопируем файл после обработки
     */
    if (1 == array_get_value(1, $argv, 0)) {
        dolog('Copy from [{}] to [{}]', $ansDI->getRelPath(), $MR->getAnswersDI()->getRelPath());
        $ansDI->copyTo($MR->getAnswersDI()->getAbsPath());
    }
}
Example #2
0
    if (starts_with($rebus, '#')) {
        continue;
    }
    $rebus = $MR->normalize($rebus);
    switch ($MR->rebusState($rebus)) {
        case PsMathRebus::STATE_HAS_ANSWERS:
            dolog("Take rebus answers: {$rebus}");
            $result[$rebus] = $MR->rebusAnswers($rebus);
            break;
        case PsMathRebus::STATE_NO_ANSWERS:
            dolog("Scipping rebus: {$rebus}");
            $result[$rebus] = array();
            break;
        case PsMathRebus::STATE_NOT_REGISTERED:
            dolog("Processing rebus: {$rebus}");
            $result[$rebus] = PsMathRebusSolver::solve($rebus);
            break;
    }
}
$ansDI = DirItem::inst(__DIR__, 'answers.txt');
$ansDI->remove();
foreach ($result as $rebus => $answers) {
    $ansDI->writeLineToFile($rebus);
    foreach ($answers as $answer) {
        $ansDI->writeLineToFile($answer);
    }
    $ansDI->writeLineToFile();
}
if (getCmdParam(1) == 1) {
    dolog('Copy from [' . $ansDI->getRelPath() . '] to [' . $MR->getAnswersDI()->getRelPath() . ']');
    $ansDI->copyTo($MR->getAnswersDI()->getAbsPath());
Example #3
0
 /** @return PsMathRebus */
 public static function solve($rebus, $skipFirstChars = true)
 {
     $rebus = PsMathRebus::inst()->normalize($rebus);
     $solver = new PsMathRebusSolver();
     $solver->SCIP_FIRST_CHARS = $skipFirstChars;
     return $solver->doSolve($rebus);
 }