Pomoc Techniczna przy grze kamien papier nozyce.

Pomoc Techniczna przy grze kamien papier nozyce.
AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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

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

Dalej mam taki kod

Kopiuj
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 ? :)

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0

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

AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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....

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
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.

AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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 :)

CountZero
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 263
0

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

Kopiuj
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?");
           }
           
    }
    
}
AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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ź.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.