Gå til innhold

Metode for å gi tilfeldig +, -, * eller /?


Anbefalte innlegg

Videoannonse
Annonse

 // Pseudocode.
integer random_operator_function(integer randnum1, integer randnum2) 
   integer operator = random int between 0 - 3
   if operator is 0
       return randnum1 + randnum2
   else if operator is 1
       return randnum1 - randnum2
   else if operator is 2
       return randnum1 * randnum2
   else
       return randnum1 / randnum2

 

Noe slikt skulle kunne fungere.

Lenke til kommentar
 // Pseudocode.
integer random_operator_function(integer randnum1, integer randnum2) 
   integer operator = random int between 0 - 3
   if operator is 0
       return randnum1 + randnum2
   else if operator is 1
       return randnum1 - randnum2
   else if operator is 2
       return randnum1 * randnum2
   else
       return randnum1 / randnum2

 

Noe slikt skulle kunne fungere.

7237310[/snapback]

Jeg tenkte også på muligheten å bruke tall, men ville først sjekke om det fantes en "riktigere" metode.

 

Og for å få ut random tall så kan du bruke random() metoden i Math-klassen (Hvis du er usikker på hvordan du henter ut et tilfeldig tall)

Denne metoden gir dessuten ut en double mellom 0.0 og 1.0.

7239332[/snapback]

Visste om random-metoden, ja. Blir nok den både for å finne tallene, og for å avgjøre regnetype hvis jeg ikke finner noe bedre.

Lenke til kommentar
  • 2 uker senere...

Slik ville jeg gjort det i Ruby. Regner med at noe lignende er mulig i Java, om enn ikke like elegant.

def rand_operation(a,b)
 a.send(%w{+ * - /}.sort_by{rand}.last, b)
end

 

I ord:

List metodene du vil kalle.

Shuffle listen eller velg et tilfeldig element fra den.

Kall metoden du valgte dynamisk med reflection.

 

Når jeg tenker etter er vel ikke + - * / metoder i java, så det kan være det blir litt mer tungvint enn som så.. :hmm:

Lenke til kommentar

Eller switch.

switch(rand.nextInt(0,4)) {
 case 0:
   sum = tall1 - tall2;
   break;
 case 1:
   sum = tall1 * tall2;
   break;
 case 2:
   sum = tall1 + tall2;
   break;
 case 3:
   sum = tall1 / tall2;
   break;
 default:
   System.out.println("Du har en feil i metoden nextInt(). Fiks den!");
   break;
}

Litt usikker på hva nextInt() gir og tar av parametre, men det er vel bare til å prøve seg frem....

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...