Hjälp en nybörjare som drunknar i java - Hur får jag ut antalet gissningar?

Permalänk

Hjälp en nybörjare som drunknar i java - Hur får jag ut antalet gissningar?

Tja, jag har tagit mig vatten över huvudet och betalat pengar för en kurs som visade sig vara ganska dålig, jag ångrar mig. Jag har aldrig programmerat förut och inser att jag skulle behöva bättre material för att lära mig. Hur som helst, pengarna är borta, nu ska jag stånga mig igenom det här och få det där jävla diplomet jag inte kommer att ha användning för.

Jag vet att den här koden är lite onödig, men det är så de ville ha den... Det fungerar som jag skrivit det, själva "spelet" men jag lyckas inte få den att skriva ut antal gissningar efter rätt svar och jag vet inte hur jag ska lyckas loopa tillbaka den till main för att enbart skriva ut antal gissningar... Tyvärr så tycker jag inte att utbildningsmaterialet går igenom hur man gör just det här.

Jag har försökt att googla, och jag blir bara mer och mer irriterad för det går att lösa, men inte som de vill ha det i utbildningen... Sånt gör mig galen, att det inte ska göras rätt, det ska göras rätt på DERAS sätt.

Antalet gissningar ska returneras från playGame.
Ett av målen med uppgiften är att visa att man fångar upp något som returneras från en metod i en annan, här, antalet gissningar som returneras från playGame och ska fångas upp och skrivas ut i main metoden.

import java.util.Scanner; public class HiLo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("HiLo!"); System.out.println("Vilken svårighetsgrad?"); System.out.println("1) Lätt: 0-10"); System.out.println("2) Mellan: 0-100"); System.out.println("3) Svår: 0-1000"); int choice = sc.nextInt(); if (choice == 1) { playGame(10); } else if (choice == 2) { playGame(100); } else if (choice == 3) { playGame(1000); } } public static int playGame(int maxNumber) { Scanner sc = new Scanner(System.in); int number = (int)(Math.random() * maxNumber) + 1; int guess; int nrOfGuesses = 0; do { System.out.println("Gissa på ett tal mellan 1-" + maxNumber); nrOfGuesses = nrOfGuesses ++; guess = sc.nextInt(); if (guess < number) { giveResponce(number, guess); } else if (guess > number) { giveResponce(number, guess); } else if (guess == number) { giveResponce(number, guess); } } while (guess != number); return nrOfGuesses; } public static void giveResponce(int answer, int guess) { if (guess < answer) { System.out.println("För lågt"); } else if (guess > answer) { System.out.println("För högt"); } else if (guess == answer) { System.out.println("Grattis, rätt!"); } } }

Permalänk
Medlem

Du returnerar antalet gissningar från playGame, men du gör inget med det i main. Du vill troligtvis spara värdet du får tillbaka i en variabel, som du gör med t.ex. sc.nextInt(), för att kunna skriva ut det i main.

Permalänk
Medlem

Min fråga till dig för att du förhoppningsvis kommer framåt.

Var sparar du dina gissningar när metoden playGame har returnerat dina gissningar?

Permalänk
Medlem

Här har du något jag knåpat ihop

public class GuessingGame { private int maxNumber; private int counter; public GuessingGame(String difficulty) { if (difficulty.equalsIgnoreCase("easy")) { this.maxNumber = 10; } else if (difficulty.equalsIgnoreCase("medium")) { this.maxNumber = 100; } else if (difficulty.equalsIgnoreCase("hard")) { this.maxNumber = 1000; } else { throw new IllegalArgumentException("Invalid difficulty level. Must be 'easy', 'medium', or 'hard'."); } this.counter = 0; } public void play() { Random rand = new Random(); int numberToGuess = rand.nextInt(maxNumber) + 1; Scanner in = new Scanner(System.in); System.out.println("I'm thinking of a number between 1 and " + maxNumber + ". Can you guess what it is?"); int guess; do { guess = in.nextInt(); counter++; if (guess < numberToGuess) { System.out.println("Your guess is too low. Try again."); } else if (guess > numberToGuess) { System.out.println("Your guess is too high. Try again."); } } while (guess != numberToGuess); System.out.println("Congratulations! You guessed the number in " + counter + " guesses."); } }