Альтернатива Random_shuffle в C ++ Builder6 - PullRequest
0 голосов
/ 11 декабря 2018

Как видно из названия, я пытаюсь найти метод для перемешивания массива.C ++ Builder, похоже, не имеет random_shuffle(), и я не знаю, как это сделать.

Я не могу найти много об этой программе в Google.Чтобы быть более конкретным, я пытаюсь сделать игру на соответствие памяти, которая имеет 16 пар.Я пытался реализовать что-то, чтобы дать каждой карточке случайную позицию (позиция 0, 1, 2, и т. Д.), Но я не знаю, как это сделать без дублирования значения.

Итак, самый простой способ, который я вижу, - это создать массив a[]={0,1,2,...31} и как-то перемешать значения.Можно ли сделать что-нибудь подобное?Если нет, есть ли у меня альтернативы?

Надеюсь, мой вопрос понятен.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Стандартным алгоритмом перемешивания массива является алгоритм Фишера-Йейтса .Это легко реализовать, и в Интернете есть ряд примеров.Однако, если вы изучаете, то было бы неплохо программировать его с нуля, а не слепо копировать чужой код.

0 голосов
/ 11 декабря 2018

Похоже, что в C ++ Builder нет функции random_shuffle ()

Да, это так.Убедитесь, что в вашем коде #include <algorithm>.

...