Files
basic-computer-games/77_Salvo/csharp/Extensions/IOExtensions.cs
2023-04-22 08:10:01 +10:00

28 lines
746 B
C#

namespace Games.Common.IO;
internal static class IOExtensions
{
internal static Position ReadPosition(this IReadWrite io) => Position.Create(io.Read2Numbers(""));
internal static Position ReadValidPosition(this IReadWrite io)
{
while (true)
{
if (Position.TryCreateValid(io.Read2Numbers(""), out var position))
{
return position;
}
io.WriteLine("ILLEGAL, ENTER AGAIN.");
}
}
internal static IEnumerable<Position> ReadPositions(this IReadWrite io, string shipName, int shipSize)
{
io.WriteLine(shipName);
for (var i = 0; i < shipSize; i++)
{
yield return io.ReadPosition();
}
}
}