Random: Exclude a number and don't repeat the rest

  • Hello. I know there are some tutorials on how to get random numbers without duplicates on the forum, but these usually use arrays and look a bit complicated, I was just wondering if there may be a more simple way of doing what I need, otherwise I guess arrays will have to do.

    So what I'm trying to do is to randomize 3 numbers like so:

    13

    6

    11

    But I also want to exclude a number of my choosing from the randomizing, and of course I need the 3 generated numbers to be all different.

    Searching the forums I found and expression that R0J0hound posted some months ago on another post:

    choose(floor(random(5)), floor(random(0,20)))

    This expression is great because in this example I can randomize the numbers between 0 and 20 without picking the number 5 (unless I'm mistaken). The problem is that the 3 numbers may be duplicates.

    Any ideas? And thank you. Let me know if the explanation is not clear enought.

    Oh and to generate the 3 numbers I use a "For each" condition, just in case you were wondering.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Besides the array solution found in other topics you could do it this way:

    https://www.dropbox.com/s/qyhadfz1oi6o3 ... .capx?dl=1

    /examples14/nonrepeating_random_from_set.capx

  • Thanks, it does work actually.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)