Вот правила/ограничения, которые у меня есть для моей головоломки.
< ol>
[*]Каждый раунд игроки разыгрывают головоломки.
[*]Количество раундов должно быть равно количеству головоломок.
[*]Игроки должны разгадывать все головоломки.
[*]У головоломки есть мин. , максимальное количество лучших игроков
[*]Игроки могут разыгрывать только 1 головоломку за раунд
[*]Игроки не могут снова разыграть головоломку
[*]Головоломки должны соответствовать минимальному количеству игроков, если игроки назначены на головоломка
[*]Игрок должен разгадывать головоломку каждый раунд
[*]Не каждую головоломку нужно разыгрывать каждый раунд
Пазлы следует стараться наполнять до максимального количества< /p>
Я создал следующее в php.
создать список игроков.
Попробуйте сложить игрока в головоломку
Проверьте, играл ли игрок в эту головоломку или головоломка уже достигла минимума.
Если игрок не может сыграть ни в одну головоломку, попробуйте еще раз, но теперь с лучшими требованиями.
Если игрока по-прежнему не удается разместить, попробуйте еще раз с максимальными требованиями.
Если игрока не удалось разместить в головоломке, попробуйте другой порядок/перестановку игроков.
После размещения каждого игрока проверьте, соответствуют ли все назначенные головоломки минимальному значению.
Если нет, попробуйте перераспределить этих игроков между другими головоломками с игроком, который не соответствует их максимальному, а затем максимальному требованию. .
Если это невозможно, попробуйте другой порядок/перестановку игроков.
Я пробовал это со следующими игроками/головоломками:
Код: Выделить всё
11 players, 6 puzzles
Puzzle 1:
min: 2
max: 5
best: 4
Puzzle 2:
min: 2
max: 4
best: 3
Puzzle 3:
min: 2
max: 6
best: 5
Puzzle 4:
min: 2
max: 4
best: 4
Puzzle 5:
min: 2
max: 8
best: 6
Puzzle 6:
min: 2
max: 5
best: 3
Код: Выделить всё
Player 1: puzzles played: 5, 4, 2, 3, 1, 6
Player 2: puzzles played: 4, 2, 1, 6, 3, 5
Player 3: puzzles played: 4, 1, 5, 2, 3, 6
Player 4: puzzles played: 1, 2, 3, 4, 6, 5
Player 5: puzzles played: 5, 3, 2, 6, 1, 4
Player 6: puzzles played: 2, 3, 5, 1, 6, 4
Player 7: puzzles played: 3, 2, 4, 1, 6, 5
Player 8: puzzles played: 1, 5, 2, 6, 3, 4
Player 9: puzzles played: 3, 5, 4, 2, 1, 6
Player 10: puzzles played: 2, 1, 3, 4, 5, 6
Player 11: puzzles played: 2, 4, 1, 3, 5, 6
index-round [0]: schedule: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 2
index-round [1]: schedule: 2, 1, 1, 3, 2, 3, 4, 4, 5, 5, 2
index-round [2]: schedule: 3, 1, 2, 1, 3, 4, 2, 5, 4, 2, 5
index-round [3]: schedule: 2, 1, 4, 1, 4, 3, 3, 2, 6, 6, 6
index-round [4]: schedule: 1, 3, 5, 6, 5, 1, 6, 3, 6, 3, 1
index-round [5]: schedule: 4, 4, 6, 5, 6, 6, 4, 6, 5, 5, 6
PHP-код:
Код: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/78300476/how-to-sort-players-in-puzzles-games-across-rounds-with-extra-constraints[/url]