Нужно выяснить, как сканировать кормовые комбинации
Я работал над кодом игрового автомата, у меня есть вход барабанов, и я закодировал все возможные комбинации. Я вывожу его в файл и уверен, что все есть. Теперь мне нужно как-то отсканировать все комбинации и на основе правил для платежей (2x, 3x и 5x одного и того же символа) и правил, что если 2 выигрыша есть, напр. aabbb
что будет выплачен только более высокооплачиваемый, сделайте счетчики для всех условий выплаты.
Вот что у меня так далеко:
#include <stdio.h>
int main() {
freopen("C:\\tmp\\output.txt", "w", stdout);
char reel1[37] = { 'A', '1', 'W', 'Q', '9', 'L', '1', 'J', 'H', 'Q', '9', 'W', '1', 'A', 'M', 'K', 'Q', 'L', 'A', '9', '1', 'M', 'K', 'Q', 'H', '9', 'A', 'Q', 'K', 'T', '9', 'J', 'W', '9', '1', 'L', '9' };
char reel2[36] = { 'A', 'K', 'L', '1', '9', 'M', 'J', '1', 'K', 'M', 'Q', '9', 'T', 'A', '1', 'Q', 'W', 'K', '9', 'L', 'J', '1', 'Q', 'L', 'K', 'J', 'W', 'A', '9', 'K', 'H', 'Q', '1', 'K', 'Q', '1' };
char reel3[35] = { 'J', 'K', '9', 'A', '1', 'Q', 'L', '9', 'A', '1', 'T', 'J', '9', 'A', 'H', '1', 'J', '9', 'L', 'Q', '1', 'J', 'H', '9', 'K', '1', 'M', 'A', 'J', 'K', 'W', '9', '1', 'J', '1' };
char reel4[32] = { 'K', 'A', 'L', 'Q', '1', 'M', 'A', 'K', 'J', 'M', 'Q', '1', 'H', 'J', 'A', 'K', 'M', '9', 'J', 'H', '1', 'Q', '9', 'J', '1', 'W', 'K', '9', 'J', 'T', '1', 'J' };
char reel5[32] = { 'J', '1', 'Q', 'W', 'K', '9', 'Q', 'J', 'K', '9', '1', 'H', 'J', '9', 'A', 'M', '9', 'J', '1', '9', 'L', 'A', '9', 'J', 'L', '9', 'K', 'Q', '9', 'T', 'K', 'Q' };
int a, b, c, d, e;
for (a = 0; a <= 36; a++) {
for (b = 0; b <= 35; b++) {
for (c = 0; c <= 34; c++) {
for (d = 0; d <= 31; d++) {
for (e = 0; e <= 31; e++) {
printf("%c%c%c%c%c\n", reel1[a], reel2[b], reel3[c], reel4[d], reel5[e]);
}
}
}
}
}
return 0;
}
Как мне заняться этим сейчас? Я знаю, что мне нужно установить счетчики для всех комбинаций выплат, и как только они появятся и станут самыми высокооплачиваемыми на барабане, повторять их по одному, пока я не пройдусь по всему списку. Но как туда добраться, бьет меня. Как сканировать все комбинации? У кого-нибудь есть предложения?
1 ответ
Ваш код печатает все 47 738 880 возможных комбинаций значений слотов. Будет много дубликатов, так как на колесах есть дубликаты, и порядок, вероятно, не имеет значения.
Вот как вы могли бы продолжить: вместо того, чтобы печатать комбинации, вызовите функцию с 5 значениями слотов, которая будет:
- проверить различные выигрышные комбинации и сохранить лучшую
- выведите комбинацию вместе с соответствующим лучшим выигрышем.
Затем вы можете запустить программу и направить ее вывод sort | uniq -c
получить список с удаленными дубликатами (и подсчитанными).
Вы можете пропустить проигрышные комбинации в списке.
Помимо печати выигрышных комбинаций, вы можете рассчитать общее количество возможных выигрышей (сумма всех выигрышей, как указано выше) и разделить их на общее количество выходов (37*36*35*32*32), чтобы проверить, какие шансы для игрока и казино.