Files
basic-computer-games/34_Digits/csharp/Guesser.cs
2022-08-03 23:34:02 +10:00

33 lines
666 B
C#

namespace Digits;
internal class Guesser
{
private readonly Memory _matrices = new();
private readonly IRandom _random;
public Guesser(IRandom random)
{
_random = random;
}
public int GuessNextDigit()
{
var currentSum = 0;
var guess = 0;
for (int i = 0; i < 3; i++)
{
var sum = _matrices.GetWeightedSum(i);
if (sum > currentSum || _random.NextFloat() >= 0.5)
{
currentSum = sum;
guess = i;
}
}
return guess;
}
public void ObserveActualDigit(int digit) => _matrices.ObserveDigit(digit);
}