Skip to main content
September 21, 2013
Answered

(Array) random questions without repeat

  • September 21, 2013
  • 1 reply
  • 535 views

how to make random questions without repeat

my code

var tanya:Array = [suara_a,suara_b,suara_c,suara_d,suara_e];

var jawab:Array = [["A", "D", "C", "B"], ["B", "G", "J", "P"], ["C", "J", "O", "E"], ["D", "V", "T", "Q"], ["E", "W", "M", "P"]];

var no = 0;

var acak1;

var acak2;

ganti();

n.addEventListener(MouseEvent.CLICK, hnex);

function hnex(Event:MouseEvent)

{

          trace ('no '+no++);

          ganti();

}

function ganti()

{

          if (no == 5)

          {

                    gotoAndStop(2);

          }

          else

          {

                    acak1 = Math.ceil(Math.random() * 4);

                    acak2 = Math.ceil(Math.random() * tanya.length) - 1;

                    b.visible = false;

                    s.visible = false;

                    so = new tanya[acak2]();

                    sc=so.play();

                    enable_disable(1);

                    if (acak1 == 1)

                    {

                              pa.text = jawab[acak2][0];pb.text = jawab[acak2][1];pc.text = jawab[acak2][2];pd.text = jawab[acak2][3];

                    }

                    if (acak1 == 2)

                    {

                              pa.text = jawab[acak2][1];pb.text = jawab[acak2][0];pc.text = jawab[acak2][3];pd.text = jawab[acak2][2];

                    }

                    if (acak1 == 3)

                    {

                              pa.text = jawab[acak2][2];pb.text = jawab[acak2][3];pc.text = jawab[acak2][0];pd.text = jawab[acak2][1];

                    }

                    if (acak1 == 4)

                    {

                              pa.text = jawab[acak2][3];pb.text = jawab[acak2][2];pc.text = jawab[acak2][1];pd.text = jawab[acak2][0];

                    }

          }

}

This topic has been closed for replies.
Correct answer kglad

use:

function shuffle(a:Array) {

    var p:int;

    var t:*;

    var ivar:int;

    for (ivar = a.length-1; ivar>=0; ivar--) {

        p=Math.floor((ivar+1)*Math.random());

        t = a[ivar];

        a[ivar] = a

;

        a

= t;

    }

}

for example, if you want to randomize tanya, use:

shuffle(tanya);

you can now loop through the randomzied tanya.

1 reply

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
September 21, 2013

use:

function shuffle(a:Array) {

    var p:int;

    var t:*;

    var ivar:int;

    for (ivar = a.length-1; ivar>=0; ivar--) {

        p=Math.floor((ivar+1)*Math.random());

        t = a[ivar];

        a[ivar] = a

;

        a

= t;

    }

}

for example, if you want to randomize tanya, use:

shuffle(tanya);

you can now loop through the randomzied tanya.