javascript : Random()???

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Dag mede-help(st)ers.

Ik zoek een stukje code waarmee ik in een eerste en derde input op een pagina een willekeurig cijfer kan zetten.
En waarmee ik in een tweede input een x of : kan zetten.
De getallen moeten echter deelbaar zijn in het geval van een :.
Het getal in de eerste input mag in geval van een : tussen 1 en 100 liggen, en in geval van een x van 1 tot 10.

In een vierde input moet dan de uitkomst geschreven worden (door onze dochter zelf), of, in geval dat er een andere input vrij gelaten werd, moet de uitkomst er al instaan.

vb :
4 x 4 = vierde (lege input)
of
4 tweede (lege) input 4 = 16
of
eerste (lege) input : 5 = 7

waarbij de lege input telkens moet ingevuld worden.

Zo zullen er tien rijen oefeningen staan, die met 1 klik op een knop die bovenaan zal staan, ingevuld zullen worden zoals het voorbeeld hierboven, dus waarschijnlijk zal er met een array gewerkt worden ook.
De vraag is alleen, hoe lap ik hem dat.

Greetz : Jer:cool:en.
 
Laatst bewerkt:
Sorry Jeroen...
Maar de manier waarop je het vraagt komt op mij tamelijk onduidelijk over; misschien heb je desondanks iets aan het onderstaande:

Stel dat een afgerond random getal x tussen 1 en 100 moet liggen, dan is de JavaScript syntaxis:
var x = Math.round( Math.random() * 100 );

Dus als random getal y tussen 1 en 10 moet liggen, dan is de syntaxis:
var y = Math.round( Math.random() * 10 );

moon
 
Hey mooncrawler,

Ik dacht het eigenlijk wel dat het niet erg duidelijk zou zijn, waarvoor mijn excuses. :o

In de bijlage zit de pagina.

De lege vakjes moeten dus drie van de vier per rij gevuld worden met :
de eerste, derde en vierde een getal
het tweede met "x" of ":".
De getallen mogen ook geen nul zijn.

Ik denk wel dat ik hier zeker iets mee kan doen. :thumb: thx

Greetz : Jer:cool:en.
 

Bijlagen

Laatst bewerkt:
Dit gaat zo niet lukken. Je geeft iedere textbox de naam 'one', iedere tweede textbox krijgt de naam 'times' en iedere derde textbox krijgt de naam 'two'.
Dan is er geen sprake meer van unieke velden. Met andere woorden - als je 'one' b.v. de waarde 3 geeft, zullen alle textboxen 'one' de waarde 3 krijgen.

Wacht maar even. Mijn DreamWeaver kon er niet tegen en crashte spontaan, maar er zijn nog wel wat andere mogelijkheden...

moon
 
Math.random() geeft een getal van 0 tot 1, het is dus nooit precies 1. Als je het dan als een dobbelsteen (1 t/m 6) wilt gebruiken moet je naar boven afronden:
Math.ceil(Math.random() * 6);

Ik kijk ook even naar de rest...


Grtz, Egel.
 
PHP:
var answer = new Array();

function dobbel(nr) {
 return Math.ceil(Math.random() * nr);
 };

function showSum(i,a,x,b) {
 var f = document.tableForm;
 f.one[i].value = a;
 f.times[i].value = x;
 f.two[i].value = b;
 f.equals[i].value = '';
 f.equals[i].style.background = '#fff';
 };

function setTables() {
 var a, b;
 for (var i = 0; i < 10; i++) {
  var method = dobbel(4); // + - x :
  switch (method) {
   case 1:
    a = dobbel(10);
    b = dobbel(10);
    showSum(i,a,'+',b);
    answer[i] = a + b;
    break;
   case 2:
    a = dobbel(10);
    b = dobbel(10);
    showSum(i,a+b,'-',a);
    answer[i] = b;
    break;
   case 3:
    a = dobbel(9) + 1;
    b = dobbel(9) + 1;
    showSum(i,a,'x',b);
    answer[i] = a * b;
    break;
   case 4:
    a = dobbel(9) + 1;
    b = dobbel(9) + 1;
    showSum(i,a*b,':',a);
    answer[i] = b;
    break;
   };
  };
 };

function checkAnswers() {
 var f = document.tableForm, color;
 for (var i = 0; i < 10; i++) {
  if (parseInt(f.equals[i].value) == answer[i]) {
   color = '#dfd';
   } else {
   color = '#fdd';
   };
  f.equals[i].style.background = color;
  };
 };
Zie bijlage :)


Vr.Gr. Egel.

Heb ik ook + & - toegevoegd, :o
met var method = dobbel(2) + 2; // x : is dat alweer opgelost. :)
 

Bijlagen

Laatst bewerkt:
Amaai.

Dit is gewoonweg perfect wat ik zocht.
Ik ben nog javascript aan het studeren, maar zover ben ik nog niet. :o

Thx Egel. You're the best. :thumb:

Greetz : Jer:cool:en.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan