Ejemplo n.º 1
0
    public void Play(Func <bool> playAgain)
    {
        _io.Write(Streams.Title);
        _io.Write(Streams.Instructions);

        while (playAgain.Invoke())
        {
            var timeIncrement = _io.ReadParameter("Time increment (sec)");
            var velocity      = _io.ReadParameter("Velocity (fps)");
            var elasticity    = _io.ReadParameter("Coefficient");

            var bounce      = new Bounce(velocity);
            var bounceCount = (int)(Graph.Row.Width * timeIncrement / bounce.Duration);
            var graph       = new Graph(bounce.MaxHeight, timeIncrement);

            var time = 0f;
            for (var i = 0; i < bounceCount; i++, bounce = bounce.Next(elasticity))
            {
                time = bounce.Plot(graph, time);
            }

            _io.WriteLine(graph);
        }
    }