Escribiendo FizzBuzz
Leyendo el horror de la codificación, acabo de encontrarme con FizzBuzz en otra ocasión.
El post original está aquí:Codificación del horror: ¿Por qué los programadores no pueden ... Programa?
Para aquellos que no lo saben: FizzBuzz es un juego para niños muy popular. Contando de 1 a 100, y cada vez que un número es divisible por 3 llamando "Fizz", cada vez que un número es divisible por 5 llamando "Buzz" y cada vez que un número es divisible por 3 y 5, llamando "FizzBuzz en lugar de número
Pero esta vez, comencé a codificarlo. Fue un trabajo de un minuto, pero hay varias cosas que no me gustan.
Aqui esta mi codigo
public void DoFizzBuzz()
{
var combinations = new Tuple<int, string>[]
{
new Tuple<int, string> (3, "Fizz"),
new Tuple<int, string> (5, "Buzz"),
};
for (int i = 1; i <= 100; ++i)
{
bool found = false;
foreach (var comb in combinations)
{
if (i % comb.Item1 == 0)
{
found = true;
Console.Write(comb.Item2);
}
}
if (!found)
{
Console.Write(i);
}
Console.Write(Environment.NewLine);
}
}
Así que mis preguntas son:
¿Cómo deshacerse del bool encontrado?¿Hay una mejor manera de probar que el foreach?