public static List <ISlotMachineItem> Shuffle(List <ISlotMachineItem> list) { int n = list.Count; while (n > 1) { n--; int k = random.Next(n + 1); ISlotMachineItem value = list[k]; list[k] = list[n]; list[n] = value; } return(list); }
public ISlotMachineItem[,] GenerateMatrix(IList <ISlotMachineItem> items, int rows, int cols) { var randomNumberProvider = new RandomNumberProvider(); var slotMachiteItems = items; var matrix = new ISlotMachineItem[rows, cols]; for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { var randomNumber = randomNumberProvider.GetRandomNumber(0, 100); matrix[row, col] = slotMachiteItems[randomNumber]; } } return(matrix); }
private decimal GetTotalWinningRowsCoefficient(ISlotMachineItem[,] matrix) { decimal totalCoefficient = 0; for (int row = 0; row < matrix.GetLength(0); row++) { decimal rowCoefficient = 0; bool isWinningRow = true; ISlotMachineItem prevItem = null; for (int col = 0; col < matrix.GetLength(1); col++) { var currentItem = matrix[row, col]; if (currentItem.IsWildCard) { continue; } if (prevItem != null && prevItem != currentItem) { isWinningRow = false; break; } rowCoefficient += currentItem.Coefficient; prevItem = currentItem; } if (isWinningRow) { totalCoefficient += rowCoefficient; } } return(totalCoefficient); }