2011-11-17, 20:34
#1
Jag har en uppgift som jag skulle behöva ha lite hjälp med.
Det går ut på följande:
En meny ska anropas som ger 3 olika alternativ.
1. Nytt spel
2. Statistik
3. Avsluta spel
Varje val ska därefter anropa en metod som gör det alternativ man har valt.
Mitt problem är att jag inte får mainmetoden att fungera på ett riktigt sätt.
Det spelar ingen roll vad jag anger som val för val "Nytt spel" körs oberoende på vad man skriver.
Skulle helt enkelt behöva lite hjälp från nån som kan lite mer än mig så jag får det att fungera.
Mainmetoden ser ut på följande sätt:
Och klassen som jag anropar metoder ifrån ser ut såhär:
Tackar på förhand
Big-O
Det går ut på följande:
En meny ska anropas som ger 3 olika alternativ.
1. Nytt spel
2. Statistik
3. Avsluta spel
Varje val ska därefter anropa en metod som gör det alternativ man har valt.
Mitt problem är att jag inte får mainmetoden att fungera på ett riktigt sätt.
Det spelar ingen roll vad jag anger som val för val "Nytt spel" körs oberoende på vad man skriver.
Skulle helt enkelt behöva lite hjälp från nån som kan lite mer än mig så jag får det att fungera.
Mainmetoden ser ut på följande sätt:
Kod:
public class Uppgift4 { public static int randomtal; public static int menyVal; public static int gissning; public static int val; public static int getNextRandom(int randomtal) { return new java.util.Random().nextInt(100); } public static void main(String[] args) { newGame mynewGame = new newGame(); val = newGame.showMainMenu(menyVal); newGame.showMainMenu(menyVal); System.out.println(val); do { if ( val == 1) randomtal = getNextRandom(randomtal); newGame.playGame(gissning); newGame.calculateGame(gissning,randomtal); newGame.showMainMenu(menyVal); if ( val == 2) newGame.showStatistics(); } while ( val != 3); } }
Och klassen som jag anropar metoder ifrån ser ut såhär:
Kod:
import java.util.Scanner; public class newGame { public static int antalGissningar; public static int högstAntalGissningar; public static int lägstAntalGissningar = 100; public static int antalGångerSpelat; public static int totaltAntalGissningar; public static int antalGissningar1; public static int playGame(int gissning) { Scanner input = new Scanner (System.in); System.out.print("Chansa på ett tal mellan 1 och 100:"); gissning = input.nextInt(); antalGångerSpelat = antalGångerSpelat +1; return gissning; } public static int showMainMenu(int menyVal) { Scanner input = new Scanner (System.in); System.out.print( "Välj mellan följande alternativ:\n1. Nytt spel\n2. Statistik\n3. Avsluta\nAnge ditt val:" ); menyVal = input.nextInt(); return menyVal; } public static void calculateGame(int gissning, int randomtal) { do { if (gissning > randomtal) { System.out.println("Lägre!"); Scanner input = new Scanner (System.in); System.out.print("Försök igen:"); gissning = input.nextInt(); antalGissningar = antalGissningar +1;} if (gissning < randomtal) { System.out.println("Högre!"); Scanner input = new Scanner (System.in); System.out.print("Försök igen:"); gissning = input.nextInt(); antalGissningar = antalGissningar +1;} if (gissning == randomtal) { System.out.println("Grattis du gissade rätt!"); antalGissningar1 = antalGissningar; } totaltAntalGissningar = antalGissningar + antalGissningar; while(antalGissningar1 > högstAntalGissningar) högstAntalGissningar = antalGissningar1 ; while (antalGissningar < lägstAntalGissningar) lägstAntalGissningar = antalGissningar1; } while(gissning != randomtal); } public static void showStatistics() { int genomsnitt; genomsnitt = totaltAntalGissningar / antalGångerSpelat ; System.out.printf( "Antal gissningar:%d\n " ,antalGissningar ); System.out.printf( "Antal gissningar i genomsnitt:%d\n ", genomsnitt); System.out.printf( "Högst antal gissningar:%d\n ",högstAntalGissningar ); System.out.printf( "Lägst antal gissningar:%d\n ",lägstAntalGissningar ); System.out.printf( "Antal gånger spelat:%d\n ",antalGångerSpelat); } }
Tackar på förhand
Big-O