Jag har en class som jag har döpt till Fragor, denna klass slumpar ut olika frågor som ställs till användaren... Hur går jag för att kontrollera om det slumpade talet redan har visats?
tex:
det slumpade talet = 2 (fråga 2 visas)
det slumpade talet = 5 (fråga 5 visas)
det slumpade talet = 2 (en ny slumpning genom föres inget visas)
jag har försökt att spara det slumpade talet i en array, och när man har slumpat fram tex 4 kollar om man hittar det i arrayen om inte skriv ut frågan, annars slumpa igen...
men jag får inte ihop det...
kod:
public class Fragor
{
private int slumpatTal, sokt;
private boolean hittad = false;
public Fragor() {}
public void write10Poäng()
{
int [] tal;
tal = new int[20];
slumpatTal = (int)(Math.random()*10)+1;
int index = 0;
tal[index] = slumpatTal;
/* sokt = slumpatTal;
if (tal[index] == sokt)
hittad = true;
if(hittad)
System.out.println("Talet finns i fältet");
else
System.out.println("Talet finns ej");
*/
if (slumpatTal == 1)
{
System.out.println("Fråga 1");
}
else if (slumpatTal == 2)
{
System.out.println("Fråga 2");
}
public class Fragor
{
private int slumpatTal;
int[] tal = new int[10];
public Fragor()
{
//Sätt alla tal till 0 i arrayen
for(int i=0;i<10;i++)
tal[i]=0;
}
public void write10Poäng()
{
//Loopa tills du hittar ett tal som inte redan är använt.
do
{
slumpatTal = (int)(Math.random()*10)+1;
/*
if(tal[slumpTal-1]==0)
System.out.println("Talet finns ej");
else
System.out.println("Talet finns i fältet");
*/
}while(tal[slumpTal-1]!=0);
//Sätt talet som du har hittat till använt i arrayen
tal[slumpTal-1]=1;
if(slumpatTal == 1)
{
System.out.println("Fråga 1");
}
else if(slumpatTal == 2)
{
System.out.println("Fråga 2");
}
}
}
Ett problem med koden är att om du har använt alla tal redan så loopar den för alltid.
if (slumpatTal == 1)
{
System.out.println("Fråga 1");
System.out.println("Hur ser symbolen för handikapparkering ut i Sverige?");
System.out.println();
System.out.println("A - En man med kryckor");
System.out.println("B - En man med rulator");
System.out.println("C - En man i rullstol");
System.out.println("D - en man med käpp");
System.out.println();
System.out.print("Skriv in svar : ");
svar = SavitchIn.readLine();
svar = svar.toLowerCase();
if (svar.compareTo("c") ==0)
{
System.out.println("rätt");
}
else
{
System.out.println("fel");
}
}
om användaren svarar rätt (C) så vill jag skicka honom till nivå 2... där det sedan slumpas mellan nya frågor... är en boolean bäst här?
tex:
om svar = C return true;
om inte return false;
om nivå 2 = true gå vidare annars inte...
hmm hur hade man bäst löst detta... det jag försöker göra är ett trivial persuit spel där användaren går vidare till 10 olika nivåer...
det är dumt att hårdkoda in frågorna. Exempelvis kan du lägga det i en databas eller en textfil. Det blir mycket renare kod också. Textfilen kan exempelvis se ut såhär: