"Gra" nie działa jak powinna

0

Witajcie jestem początkujący w te klocki. Dopiero się uczę javy. Chciałem napisać taką gre konsolową tylko aby sprawdzić swoje umiejętności. Niestety nie umiem zrobić kilku rzeczy i mam problem z kodem. Prosiłbym o info co jest źle, ale też chciałbym wiedzieć co mógłbym udoskonalić (stosować to zamiast tego, itp).
Problemy:
1.Wchodzę do sklepu i gdy coś już kupie pokazuje mi "Niestety przegrałes to starcie" ale ja nie wchodziłem do walki tylko do sklepu.
2.Jak już mówiłem w 1 punkcie pisze mi że przegrałem mimo tego że kupiłem jakiś item :(
3.Chciałbym jeszcze zrobić tak żeby wracało mi do tego "menu" po kupnie jakiegoś itemu czy też po walce.

package program;
import java.util.Scanner;
public class program 
{
    public static void main(String args []) 
    
{   
    	int atak=0;
    	Scanner input = new Scanner(System.in);
    	System.out.println("Witaj w grze Console Battle!");
    	System.out.println("Wprowadz nazwe swojej postaci.");
    	String nazwa = input.nextLine();   
    	System.out.println("Twoja nazwa to: " + (nazwa) );
    	System.out.println("1.Wejdź do sklepu!");
    	System.out.println("2.Stocz walke!");
    	System.out.println("3.Zobacz swoje statystyki");
    	int opcja = input.nextInt();
    	switch (opcja){
    	case 1:
    		System.out.println("1.Miecz Dorana +10 ataku");
    		System.out.println("2.Ostrze Nieskonczonosci +20 ataku"); 
    		System.out.println("3.Młot Thora +30 ataku");
    		int item = input.nextInt();
    		switch (item) {
    	    case 1:
    	      System.out.println("Kupiles Miecz Dorana. Twoj atak wzrosl o 10! I wynosi teraz: " + (atak + 10));
    	      break;
    	 
    	    case 2:
    	      System.out.println("Kupiles Ostrze Nieskonczonosci. Twoj atak wzrosl o 20! I wynosi teraz: " + (atak + 20));
    	      break;
    	      
    	    case 3:
      	      System.out.println("Kupiles Mlot Thora. Twoj atak wzrosl o 30! I wynosi teraz: " + (atak + 30));
      	      break;
    	 
    	    default:
    	      System.out.println("Nie ma takiego przedmiotu!");
    	      break;
    	                 }
    		
    	     case 2:
    	     
    	    	 if (atak > 10){
    	         System.out.println("Gratulacje wygrałeś pojedynek!");
    	    	 }
    	    	 else{ 
    	         System.out.println("Niestety przegrales to starcie :(");
    	         }
    	    	 break;
    	     
    	    
    	    case 3:
    	    	System.out.println("Twój atak to: " + (atak));
    		    break;
    		    
	        default:
	        System.out.println("Narazie możesz tylko korzystac z 3 opcji!");
    		
    		 }
    	
    	System.out.println("gfgf");
}
}

P.S Proszę o wyrozumiałość jestem początkujący.

dodanie znacznika <code class="java"> - furious programming

2
  1. Nie robisz break po swoim case 1: na pierwszym poziomie
  2. Odpuść to sobie i ucz sie dalej podstaw.
1

Co do powrotu do menu, to zdefiniuj prostą pętlę while, która będzie wykonywała się jedynie przy określonym warunku.

1

Jeśli cała logika aplikacji znajduje się w funkcji głównej to wiedz, że coś się dzieje.

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