Exemplo n.º 1
0
    public void CommandUpUpdatesAim()
    {
        var sub = new Submarine();

        sub.Execute(new SubmarineCommand(Direction.Down, 1));
        Assert.That(sub.Horizontal, Is.EqualTo(0));
        Assert.That(sub.Aim, Is.EqualTo(1));
    }
Exemplo n.º 2
0
    public void CommandForwardUpdatesHorizontalLocation()
    {
        var sub = new Submarine();

        sub.Execute(new SubmarineCommand(Direction.Forward, 1));
        Assert.That(sub.Horizontal, Is.EqualTo(1));
        Assert.That(sub.Depth, Is.EqualTo(0));
    }
Exemplo n.º 3
0
    public void CommandForwardUpdatesHorizontalLocationAndDepthWhenAimIsNotZero()
    {
        var sub = new Submarine {
            Aim = 1
        };

        sub.Execute(new SubmarineCommand(Direction.Forward, 1));
        Assert.That(sub.Horizontal, Is.EqualTo(1));
        Assert.That(sub.Depth, Is.EqualTo(1));
    }
Exemplo n.º 4
0
    public async Task <int> Part1()
    {
        var commands = await _inputFetcher.GetTransformedSplitInputForDay(2, SubmarineCommandParser.Parse);

        var sub = new Submarine();

        foreach (var command in commands)
        {
            sub.Execute(command);
        }
        return(sub.Horizontal * sub.Depth);
    }