Avatar billede anders77 Nybegynder
19. oktober 2001 - 11:53 Der er 12 kommentarer og
1 løsning

Array

Hej

Jeg har et lille problem i en quiz, jeg har lavet.

Jeg vil gerne have min quiz til at vælge 5 sprøgsmål ud af 15 mulige. Disse 5 skal vælges random.

Her kan i finde kildekoden, samt spørgsmålene; www.thingholm.dk/quiz

PFT!

Vh

Anders Thingholm

PS. Det haster en smule :-)
Avatar billede gotcha Nybegynder
19. oktober 2001 - 12:06 #1
Jeg ville bare lave et array med de 15 spørgsmål, sortere dem på en vilkårlig måde (brug evt. følgende prototype: http://www.layer51.com/proto/d.asp?p=3&f=147 ) og så bare vælge 5 elementer i arrayet (f.eks. bare de 5 første) :)

Mvh Morten
Avatar billede anders77 Nybegynder
19. oktober 2001 - 12:10 #2
Vil du prøve at få det til at virke i koden?

VH

Anders
Avatar billede pixelpaw Nybegynder
19. oktober 2001 - 12:13 #3
fra=1;
til=15;
function lavPermutation (fra, til) {
    var tmp = new Array();
    var j = 0;
    for (var i = fra; i<=til; i++) {
        tmp[j++] = i;
    }
    for (var i = 0; tmp.length>i; i++) {
        valg = i+Math.floor(Math.random()*(tmp.length-i));
        j = tmp[valg];
        tmp[valg] = tmp[i];
        tmp[i] = j;
    }
    return tmp;
}
function makeAndShow () {
    var fra = parseInt(fra, 10);
    var tmp = parseInt(til, 10);
    var til = Math.max(fra, tmp);
    fra = Math.min(fra, tmp);
    var res = lavPermutation(fra, til);
    var tx = \"\";
    for (var i = 0; res.length>i; i++) {
        tx += res[i]+\" \";
    }
    resultat = tx;
}

lav derefter en knap med denne kode:
on (click) {
  makeAndShow();
}

Dette laver et tilfældigt Array med tallene 1-15.
Heefter vælger du de første fem tal i arrayet.
Avatar billede anders77 Nybegynder
19. oktober 2001 - 12:16 #4
Kan det ikke gøres kortere?

VH

Anders

Den eksisterende kode er sådan:

// set number of questions;
total_questions = 7;
array_length = 5;
// Create an array of non-repeating random numbers
qarray = new Array();
for (y=1; y<=array_length; y++) {
    item = (random(Number(total_questions)))+1;
    while (qarray[item]>0) {
        item = (random(array_length))+1;
    }
    qarray[item] = y;
}
// Game variables
getquestion = false;
currentq = 1;
stop ();
Avatar billede gotcha Nybegynder
19. oktober 2001 - 12:16 #5
Jeg har lige taget et hurtigt kig på dit link, og jeg kan se, at du har en bunke tekstfiler. Derfor ville jeg lave et array med navnene på tekstfilerne, og så hente den enkelte tekstfil ind. En anden, og formentlig bedre, metode er at anvende XML. Colin Moock (http://www.moock.org) har lavet en glimrende quiz til sin bog (\"ActionScript: The Definitive Guide\"), og du burde kigge på følgende fil:

http://www.moock.org/asdg/codedepot/chapter-examples/chap13/quiz-version4/quiz-version4.zip

Mvh Morten
Avatar billede gotcha Nybegynder
19. oktober 2001 - 12:58 #6
anders77 >> Hvad er din email? Jeg har lige ændret lidt i din fil, så der bliver skrevet 5 vilkårlige værdier ud, når brugeren klikker på knappen (jeg har bare skrevet dem ud via trace). Jeg forstår dog ikke helt, hvorfor du vil have 5 forskellige spørgsmål, når du kun har tekstfelter til 1 spørgsmål med tre forskellige svarmuligheder til det. Vil du ikke bare hente et nyt spørgsmål ind med tilhørende svarmuligheder, når brugeren klikker på knappen?

Mvh Morten
Avatar billede anders77 Nybegynder
19. oktober 2001 - 13:03 #7
anders@thingholm.dk
Avatar billede gotcha Nybegynder
19. oktober 2001 - 13:07 #8
Så er filen sendt :)
Avatar billede anders77 Nybegynder
19. oktober 2001 - 13:13 #9
Hej igen!

Det ser godt ud, men er det ikke muligt at lave den dynamisk - dvs. selv få den til at vælge hvor mange spørgsmål der er i alt og hvor mange man gerne vil udtrække?

VH

Anders
Avatar billede gotcha Nybegynder
19. oktober 2001 - 13:17 #10
Hvis du kigger på koden i frame 1 på hovedtidslinien i laget ActionScripts, så er der følgende variabel:

numQuestions = 5;

Dette er antallet af spørgsmål, som du ønsker at udtrække. Antallet af spørgsmål er bare lig med antallet af elementer i arrayet questions. Er det det, du mener?

Mvh Morten
Avatar billede anders77 Nybegynder
19. oktober 2001 - 13:22 #11
Nej ikke helt. Jeg kunne godt tænke mig at være i stand til at sige, at der findes 60 spørgsmål og kun 5 skal udtrækkes (f.eks.)
Avatar billede anders77 Nybegynder
19. oktober 2001 - 13:23 #12
Kan dette ikke bygges ind i min eksisterende kode?
Avatar billede gotcha Nybegynder
19. oktober 2001 - 14:03 #13
Jeg er lige sendt en ny udgave, hvor det er bygget ind i den eksisterende kode. Dog betyder variablen numQuestions nu antallet af spørgsmål i alt, og variablen selectQuestions er det antal, der skal vælges. Desuden forudsættes det, at de alle sammen starter med q (det har du også i din originale).

Mvh Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester