mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 15:37:51 -08:00
43 lines
928 B
C#
43 lines
928 B
C#
namespace Roulette;
|
|
|
|
internal class Game
|
|
{
|
|
private readonly IReadWrite _io;
|
|
private readonly IRandom _random;
|
|
private readonly Table _table;
|
|
private readonly Croupier _croupier;
|
|
|
|
public Game(IReadWrite io, IRandom random)
|
|
{
|
|
_io = io;
|
|
_random = random;
|
|
_croupier = new();
|
|
_table = new(_croupier, io, random);
|
|
}
|
|
|
|
public void Play()
|
|
{
|
|
_io.Write(Streams.Title);
|
|
if (!_io.ReadString(Prompts.Instructions).ToLowerInvariant().StartsWith('n'))
|
|
{
|
|
_io.Write(Streams.Instructions);
|
|
}
|
|
|
|
while (_table.Play());
|
|
|
|
if (_croupier.PlayerIsBroke)
|
|
{
|
|
_io.Write(Streams.LastDollar);
|
|
_io.Write(Streams.Thanks);
|
|
return;
|
|
}
|
|
|
|
if (_croupier.HouseIsBroke)
|
|
{
|
|
_io.Write(Streams.BrokeHouse);
|
|
}
|
|
|
|
_croupier.CutCheck(_io, _random);
|
|
}
|
|
}
|