Как сортировать игроков в головоломках/играх по раундам? с дополнительными ограничениямиPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как сортировать игроков в головоломках/играх по раундам? с дополнительными ограничениями

Сообщение Anonymous »

Я создаю игру, в которой игроки вместе разгадывают головоломки в течение x раундов. Теперь у меня возникла проблема с сортировкой этих игроков по всем раундам, поскольку у меня есть определенные ограничения.
Вот правила/ограничения, которые у меня есть для моей головоломки.
< 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
Как я могу это улучшить, чтобы головоломка заполнялась максимально эффективно, например, головоломка раунда 1 (индекс 0) заполнялась максимально эффективно.
PHP-код:

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/78300476/how-to-sort-players-in-puzzles-games-across-rounds-with-extra-constraints[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с подбором игроков для двух игроков в базе данных реального времени.
    Гость » » в форуме C#
    0 Ответы
    61 Просмотры
    Последнее сообщение Гость
  • Создайте команду из 11 игроков из 22 игроков двух команд.
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Создайте команду из 11 игроков из 22 игроков двух команд.
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Обработка ввода Unicode в играх
    Гость » » в форуме C++
    0 Ответы
    20 Просмотры
    Последнее сообщение Гость
  • Как заставить моего персонажа прыгать в 2D-играх с Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»