[Java] Hur får jag mitt spel att köra flera omgångar?

Permalänk

[Java] Hur får jag mitt spel att köra flera omgångar?

hej håller på med ett hilo spel i java. har kommit tillräckligt långt så att man kan skriva in tal och pogrammet säger om det är för högt och för lågt och utskriften blir när man har gissat rätt är hur många gånger man har gissat.

FRÅGA: Min fråga är hur man gör så att programmet frågar om man vill köra en spelomgång till? tacksam för svar

Scanner scan = new Scanner(System.in); System.out.println("välj svårighetsgrad"); System.out.println("1. lätt (1-10)"); System.out.println("2. medel (1-100)"); System.out.println("3.expert (1-1000)"); int val = scan.nextInt(); if (val == 1) { System.out.println("Gissa på ett tal mellan 1-10"); } else if (val == 2) { System.out.println("välj ett tall mellan 1-100"); } if (val == 3) { System.out.println("välj ett tal mellan 1-1000"); } int number; if (val == 1) { number = (int) (Math.random() * 10) + 1; for (int i = 1; i < 90; i++) { { } System.out.println("Gissa på ett tal mellan 1-10"); int tal = scan.nextInt(); if (number == tal) { System.out.println("GRATTIS! Du gissade " + i + " gånger"); break; } else if (number > tal) { System.out.println("Talet är större"); } else { System.out.println("Talet är mindre"); } } return; } int letter; if (val == 2) { letter = (int) (Math.random() * 100) + 1; for (int i = 1; i < 100; i++) { { System.out.println("Gissa på ett tal mellan 1-100"); int tal = scan.nextInt(); if (letter == tal) { System.out.println("GRATTIS !! Du gissade " + i + " gånger"); break; } else if (letter > tal) { System.out.println("Talet är större"); } else { System.out.println("Talet är mindre"); } } } } int siffra; if (val == 3) { siffra = (int) (Math.random() * 1000) + 1; for (int i = 1; i < 90; i++) { { } System.out.println("Gissa på ett tal mellan 1-1000"); int tal = scan.nextInt(); if (siffra == tal) { System.out.println("GRATTIS! Du gissade " + i + " gånger"); break; } else if (siffra > tal) { System.out.println("Talet är större"); } else { System.out.println("Talet är mindre"); } } } } }

Permalänk
Medlem

Du kan lägga in alltsammans i en while-sats, som körs om variabeln spelaIgen är "ja". I slutet av satsen (alltså spelet) kan du fråga om spelaren vill spela igen med input till spelaIgen då man bör svara "ja" eller "nej". Plus att du inte har någon main() - du har koll på att man ska ha det, eller?

Visa signatur

:)

Permalänk

tackar main finns med men jag kopierade inte det. men kan man göra det utan att använda en while sats?

Permalänk
Medlem
Skrivet av turbo 3000:

tackar main finns med men jag kopierade inte det. men kan man göra det utan att använda en while sats?

Du kan använda vilken loop som helst eller att skriva ut frågan som sedan beroende på svar startar ett nytt spel via metodanrop exempelvis.

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem
Skrivet av turbo 3000:

tackar main finns med men jag kopierade inte det. men kan man göra det utan att använda en while sats?

Kunde tänka mig att det var så =).

Ingen expert, men du skulle även kunna lösa det genom att läsa inputen av spelaIgen och om "ja", main(). Detta är dock ingen bra lösning, vilket jag misstänker att du redan har koll på. Men det borde finnas något bättre sätt an att använda en while-sats.

Visa signatur

:)

Permalänk
Medlem
Skrivet av FilosofN:

Kunde tänka mig att det var så =).

Ingen expert, men du skulle även kunna lösa det genom att läsa inputen av spelaIgen och om "ja", main(). Detta är dock ingen bra lösning, vilket jag misstänker att du redan har koll på. Men det borde finnas något bättre sätt an att använda en while-sats.

Anropa absolut inte main själv, kör på en loop, while ser ut att passa bra...
I programmering är loopar minst lika vanliga som if-satser så lika bra att skalla tegelväggen direkt (även om den i detta fall är en frigolitvägg).

Permalänk
Medlem

Det är väl bara att göra en meny som man skickas tillbaka till när man spelar klart en omgång?

Visa signatur

| Fractal Design XL R2| 2x Gigabyte 680 Gtx@1254/7300mhz | Asrock Z77 OC Formula | 3570k@4.5ghz(1.36v) & Phanteks PH-TC14PE | 16gig hyperx beast series@2133mhz | Fractal Design Newton R2, 1000W 80+ | Samsung SSD Basic 840-Series 512GB | 2TB Toshiba 7200rpm SATA6 | 9x Scythe Glide Stream 2000rpm | 2x Bitfenix Recon Fan Controller | BenQ 27'' XL2720T 120Hz + Dell UltraSharp 27" U2713HM IPS 2560x1440 | Sennheiser HD595

Permalänk
Medlem
Skrivet av deadich:

Det är väl bara att göra en meny som man skickas tillbaka till när man spelar klart en omgång?

Tillbakaskicken är det knepiga =).

Visa signatur

:)

Permalänk
Medlem

kanske du kan hämta inspiration härifrån: http://runnable.com/UpPyJupVxuNGAAAq/simple-options-menu-usin...
inte läst den än så vet inte hur pass bra den är.

här är lite extraläsning http://www.cplusplus.com/forum/beginner/21033/

Visa signatur

| Fractal Design XL R2| 2x Gigabyte 680 Gtx@1254/7300mhz | Asrock Z77 OC Formula | 3570k@4.5ghz(1.36v) & Phanteks PH-TC14PE | 16gig hyperx beast series@2133mhz | Fractal Design Newton R2, 1000W 80+ | Samsung SSD Basic 840-Series 512GB | 2TB Toshiba 7200rpm SATA6 | 9x Scythe Glide Stream 2000rpm | 2x Bitfenix Recon Fan Controller | BenQ 27'' XL2720T 120Hz + Dell UltraSharp 27" U2713HM IPS 2560x1440 | Sennheiser HD595