Ok, więc mam rzut kostką aplikacji ...Kod w języku C# daje oczekiwane wyniki tylko po kroku?
Kiedy przejdę przez kod, działa normalnie, a "wyniki" zawierają poprawną liczbę wyników rzutu i wydają się być losowe, kiedy zostawiam kod uruchomić i zrobić dokładnie to samo, co tworzy zestaw identycznych liczb.
Jestem pewien, że jest to błąd logiczny, którego nie widzę, ale błądzenie nim przez wiele godzin nie poprawiło sytuacji, więc każda pomoc jest bardzo przydatna. :)
class Dice
{
public int[] Roll(int _throws, int _sides, int _count)
{
Random rnd = new Random();
int[] results = new int[_throws];
// for each set of dice to throw pass data to calculate method
for (int i = 0; i < _throws; i++)
{
int thisThrow = Calculate(_sides, _count);
//add each throw to a new index of array... repeat for every throw
results[i] = thisThrow;
}
return results;
}
private int Calculate(int _sides, int _count)
{
Random rnd = new Random();
int[] result = new int[_count];
int total = 0;
//for each dice to throw put data into result
for (int i = 0; i < _count; i++)
{
result[i] = rnd.Next(1, _sides);
}
//count the values in result
for (int x = 0; x < _count; x++)
{
total = total + result[x];
}
//return total of all dice to Roll method
return total;
}
}
dzięki modyfikacji teraz :) – Yoda
Cholernie szybkie losowanie! –
@Ian: Widziałem to zdarzało się zbyt wiele razy, aby natychmiast go nie dostrzec :) – leppie