mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 07:10:42 -08:00
30 lines
719 B
C#
30 lines
719 B
C#
namespace Digits;
|
|
|
|
public class Memory
|
|
{
|
|
private readonly Matrix[] _matrices;
|
|
|
|
public Memory()
|
|
{
|
|
_matrices = new[]
|
|
{
|
|
new Matrix(27, 3, (_, _) => 1),
|
|
new Matrix(9, 1, (i, j) => i == 4 * j ? 2 : 3),
|
|
new Matrix(3, 0, (_, _) => 9)
|
|
};
|
|
}
|
|
|
|
public int GetWeightedSum(int row) => _matrices.Select(m => m.GetWeightedValue(row)).Sum();
|
|
|
|
public void ObserveDigit(int digit)
|
|
{
|
|
for (int i = 0; i < 3; i++)
|
|
{
|
|
_matrices[i].IncrementValue(digit);
|
|
}
|
|
|
|
_matrices[0].Index = _matrices[0].Index % 9 * 3 + digit;
|
|
_matrices[1].Index = _matrices[0].Index % 9;
|
|
_matrices[2].Index = digit;
|
|
}
|
|
} |