Pomoc Techniczna przy grze kamien papier nozyce.

0

Hej. Potrzebuje pomocy. Jestem na bootcampie Javy i bede mial do napisania gre kamien papier nozyce. Na ten moment jest mnowstwo czasu wiec sobie zacząłem powoli głowkować jak to mogę zrobić. Zadeklarowałem sobie zmienne finalne

    final int KAMIEN = 1;
	final int PAPIER = 2;
	final int NOZYCE = 3;

Dalej mam taki kod

System.out.println("Welcome to | Kamien Papier Nozyce | ");
		
		int computerChoice = random.nextInt(3) + 1 ;
		int playerChoice = scanner.nextInt();
		
		System.out.println("You picked " + playerChoice);
		System.out.println("Computer picked " + computerChoice);
		

W konsoli wyskakuje
You picked. 3
Computer picked 2

Czy jest jakas możliwość aby zamiast cyferek wyskakiwały nazwy tego co zostało wybrane ? :)

0

No skoro wiesz co wylosowałeś na podstawie numeru to sobie możesz to zmapować na jakiegoś Stringa.

0

@szweszwe no nie do końca wiem co wylosowałem skoro jest to metoda generująca losowe liczby i przypisująca wynik do wyboru komputera. Znam tylko to co ja wybiore. Chodzi o to zeby pod tą zmienną ktora przechowuje 1 , 2 lub 3 którym to odpowiada kamien papier nozyce nie wyswietlało cyferek tylko nazwy. I sorry ale nie mam zielonego pojęcia co to znaczy zmapować na Stringa. Jakieś prostsze rozwiązanie.?Podejrzewam że można by to było zrobić metodami z tysiącami if-ów i rozłożyc to na kazdy przypadek wtedy bede znał co kto wybrał bo bedzie to warunkiem w pętli i sobie wpisze system.out.println " blala wybrales kamien itp." ale nie wydaje mi sie to dobrym rozwiązaniem....

0

Wsadź to do listy Stringów i na postawie tego co wylosujesz - wtedy od 0 do 2 bierzesz Stringa list.get(value)
To moje value odpowiada Twojemu playerChoice i computerChoice.

0

@szweszwe Faktycznie działa. Dzięki. Sam bym na to nie wpadł że tak trzeba zrobić a w zasadzie jak patrze to banalne było. Zostawiam temat otwarty bo pewnie napotkam kolejne problemy po drodze i bede chciał się podzielić kodem finalnym do oceny :)

0

Coś ci zabrania użyć enumów?

enum RPS{
    PAPIER,    //0
    KAMIEN,    //1
    NOZYCE     //2
}

public class ExceptionsTraining {

    public static void main(String[] args) {
           Scanner scn = new Scanner(System.in);
           int a = scn.nextInt();
           if ( a < RPS.values().length ){
               System.out.println("Wybrales: " + RPS.values()[a]);
           } else{
               System.out.println("What are you, stoopid?");
           }
           
    }
    
}
0

@CountZero: Jeszcze nie miałem dawki wiedzi o enum dlatego rozwiązanie z listą było mi bardziej pzyjazne :) Ale ok dzięki za podpowiedź.

1 użytkowników online, w tym zalogowanych: 0, gości: 1