Files
basic-computer-games/07_Basketball/csharp/Plays/BallContest.cs
2022-04-11 08:44:53 +10:00

30 lines
814 B
C#

using Games.Common.IO;
using Games.Common.Randomness;
namespace Basketball.Plays;
internal class BallContest : Play
{
private readonly float _probability;
private readonly string _messageFormat;
private readonly IReadWrite _io;
private readonly IRandom _random;
internal BallContest(float probability, string messageFormat, IReadWrite io, IRandom random)
: base(io, random)
{
_io = io;
_probability = probability;
_messageFormat = messageFormat;
_random = random;
}
internal override bool Resolve(Scoreboard scoreboard)
{
var winner = _random.NextFloat() <= _probability ? scoreboard.Home : scoreboard.Visitors;
scoreboard.Offense = winner;
_io.WriteLine(_messageFormat, winner);
return false;
}
}