コード例 #1
0
ファイル: day12.php プロジェクト: jamosaur/advent
function part2($i)
{
    $total = 0;
    foreach ($i as $part) {
        if (is_array($part) || is_object($part)) {
            $total += part2($part);
        }
        if (is_numeric($part)) {
            $total += $part;
        }
        if (is_object($data) && is_string($part) && $part == "red") {
            return false;
        }
    }
    return $total;
}
コード例 #2
0
}
function basic_review()
{
    return sequence(lesson(name('lesson 1'), filename('bolt_sample_lesson.php?n=1')), lesson(name('lesson 2'), filename('bolt_sample_lesson.php?n=2')));
}
function int_review()
{
    return lesson(name('lesson 2'), filename('bolt_sample_lesson.php?n=2'));
}
function my_rand($student, $unit)
{
    return rand();
}
function sample_select()
{
    return select(name('sample select'), valuator('my_rand'), lesson(name('lesson 1'), filename('bolt_sample_lesson.php?n=1')), lesson(name('lesson 2'), filename('bolt_sample_lesson.php?n=2')), lesson(name('lesson 3'), filename('bolt_sample_lesson.php?n=3')));
}
function sample_random()
{
    return random(name('first lessons'), number(2), lesson(name('lesson 1'), filename('bolt_sample_lesson.php?n=1')), lesson(name('lesson 2'), filename('bolt_sample_lesson.php?n=2')), lesson(name('lesson 3'), filename('bolt_sample_lesson.php?n=3')));
}
function xset_with_review()
{
    return exercise_set(name('exercise set 1'), number(2), exercise(name('exercise 1'), filename('bolt_sample_exercise.php?n=1')), exercise(name('exercise 2'), filename('bolt_sample_exercise.php?n=2')), exercise(name('exercise 3'), filename('bolt_sample_exercise.php?n=3')), repeat(0.3, basic_review(), REVIEW), repeat(0.7, int_review(), REVIEW | REPEAT), repeat(1, null, REPEAT | NEXT), refresh(array(7, 14, 28)));
}
function sample_xset()
{
    return exercise_set(name('sample exercise set'), number(1), exercise(name('exercise 1'), filename('bolt_sample_exercise.php?n=1')));
}
return sequence(name('course'), sample_select(), sample_xset(), part2());
コード例 #3
0
ファイル: day16.php プロジェクト: RedBoool/AdventOfCode
            if (in_array($key, array('cats', 'trees'))) {
                if ($distinct > $ticketTap[$key]) {
                    $goodSue++;
                }
            } else {
                if (in_array($key, array('pomeranians', 'goldfish'))) {
                    if ($distinct < $ticketTap[$key]) {
                        $goodSue++;
                    }
                } else {
                    if ($distinct === $ticketTap[$key]) {
                        $goodSue++;
                    }
                }
            }
        }
        if ($goodSue === 3) {
            return $sueId;
        }
    }
    return;
}
$sueList = getListOfSue();
$part1 = part1($ticketTap, $sueList);
print 'Part1: ' . $part1;
print PHP_EOL;
$part2 = part2($ticketTap, $sueList);
print 'Part2: ' . $part2;
print PHP_EOL;
//print_r($sueList);
//print PHP_EOL;
コード例 #4
0
ファイル: day1.php プロジェクト: Rory1994/AdventOfCode
                break;
            }
        }
    }
    return $floor;
}
function part2($input)
{
    $count = 1;
    $inputArray = str_split($input);
    foreach ($inputArray as $character) {
        if ($character == UPFLOOR) {
            $floor++;
        } else {
            if ($character == DOWNFLOOR) {
                $floor--;
            } else {
                echo "Bad input";
                break;
            }
        }
        if ($floor == -1) {
            return $count;
        } else {
            $count++;
        }
    }
}
echo part1($input);
echo part2($input);
コード例 #5
0
ファイル: day2.php プロジェクト: Rory1994/AdventOfCode
    fclose($file);
    return $total;
}
function calculateSurfaceArea($dimensions)
{
    return 2 * $dimensions[0] * $dimensions[1] + 2 * $dimensions[1] * $dimensions[2] + 2 * $dimensions[2] * $dimensions[0];
}
function calculateAreaOfSmallestSide($dimensions)
{
    return $dimensions[0] * $dimensions[1];
}
function calculatePaperNeeded($dimensions)
{
    return calculateAreaOfSmallestSide($dimensions) + calculateSurfaceArea($dimensions);
}
function calculateRibbonToWrap($dimensions)
{
    return $dimensions[0] * 2 + $dimensions[1] * 2;
}
function calculateRibbonForBow($dimensions)
{
    return $dimensions[0] * $dimensions[1] * $dimensions[2];
}
function calculateRibbonNeeded($dimensions)
{
    return calculateRibbonToWrap($dimensions) + calculateRibbonForBow($dimensions);
}
echo part1($fileName) + "\r\n";
echo "\n";
echo part2($fileName);
コード例 #6
0
ファイル: day20.php プロジェクト: RedBoool/AdventOfCode
 *
 * @param integer $input Goal
 */
function part2($input)
{
    $current = 780000;
    // As i know the answer, let's avoid wasting time and don't start with 1
    while (1) {
        $dividerList = getDividers($current);
        foreach ($dividerList as $divider) {
            if ($divider * 50 < $current) {
                unset($dividerList[$divider]);
            }
        }
        $sum = 0;
        $i = 0;
        foreach ($dividerList as $divider) {
            $sum += $divider * 11;
        }
        if ($sum >= $input) {
            break;
        }
        $current++;
    }
    print 'Part2: ' . $current;
    print PHP_EOL;
}
$input = 33100000;
part1($input);
part2($input);