Błąd kompilatora c2360

0

Mam problem z tworzeniem mojego pierwszego "symulatora"
kod

//kod
//Pliki nagłówkowe
#include <iostream>
#include <conio.h>
#include <ctime>
#include "RPG Fight simulator.h"

using namespace std;

void main()
{
	//MENU
	cout << "                                            RPG FIGHT SIMULATOR                                    " << endl;
	cout << "-----------------------------------------------------------------------------------------------------------------------" << endl;
	int nOpcjamenu;
	cout << "                " << endl;
	cout << "   WYBIERZ OPCJE" << endl;
	cout << "   1. ZACZNIJ SYMULACJE MAGA" << endl;
	cout << "   2. ZACZNIJ SYMULACJE LUCZNIKA" << endl;
	cout << "   3. ZACZNIJ SYMULACJE WOJOWNIKA" << endl;
	cout << "   4. ZACZNIJ SYMULACJE BARBARZYNCY" << endl;
	cout << "   5. ZACZNIJ SYMULACJE LOWCY" << endl;
	cout << "   WYBOR: ";
	cin >> nOpcjamenu;
	switch (nOpcjamenu)
	{
	case 1:
		//ATAK MAGA WYBOR
		cout << "------------------------------------------------------------------------------------------------------------------------" << endl;
		cout << "                        " << endl;
		cout << "WYBIERZ ATAK" << endl;
		cout << "1. ATAK ZWYKLY 30 - 70 " << endl;
		cout << "2. ATAK SPECJALNY 20 - 85 " << endl;
		cout << "3. ATAK MAGICZNY 35 - 100 " << endl;
		cout << "WYBOR: ";
		int nWybor1;
		cin >> nWybor1;
		switch (nWybor1)
		case 1:
		//ATAK MAGA WYBOR PODSUMOWANIE
		cout << "---------------------------------------------------------------------------------------------------------------------" << endl;
		srand((int)time(NULL));
		int nObrazeniamag1 = rand() % 40 + 30;


		srand((int)time(NULL));
		int nObrazeniamagPotw1 = rand() % 50 + 50;
		cout << "ZADANE OBRAZENIA " << nObrazeniamag1 << "." << endl;
		cout << "OTRZYMANE OBRAZENIA " << nObrazeniamagPotw1 << "." << endl;
		if (nObrazeniamag1 > nObrazeniamagPotw1)
		{
			cout << "BRAWO! WYGRALES" << endl;
		}
		else
		{
			cout << "NIESTETY PRZEGRALES" << endl;
		}

		
		case 2:
		//ATAK SPEC MAG
			cout << "--------------------------------------------------------------------------------------------------------------------------" << endl;
				srand((int)time(NULL));
				int nObrazeniamagpotw2 = rand() % 50 + 50;

				srand((int)time(NULL));
				int nObrazeniamag2 = rand() % 50 + 50;


	}
}

Problem otóż jest w zmiennej
pokazuje:

Błąd	C2360	Inicjalizacja "nObrazeniamagPotw1" jest pomijana przy etykiecie "case"
2

Zamiast pisać komentarze typu:

//ATAK MAGA WYBOR

zamknij kod którego dotyczy ten komentarz w funkcji, która będzie się nazywać jak ten komentarz: atakMagiaWybor

A kompilator się czepia, bo:

  1. brakuje break
  2. definiowanie zmiennych wewnątrz switch jest błędogenne
0

@MarekR22 czyli jak ostatecznie kod ma wyglądać?

0

Najlepiej zamknij to (każde case) w swojej funkcji.
Na leniwego otocz sekcję case klamrami (zakresem).

0

@MarekR22 Powiem tak, po zamknięciu każdego case do własnej funkcji pokazuje błędy
cout jest niejednoznaczne

0

@MarekR22: po zamknieciu case w osobnych funkcjach wszystko sie krzaczy

0

@MarekR22: dopóki nie dodam case 2 wszystko śmiga

0

Po dodaniu klamer i przepuszczeniu przez clang-format:
https://godbolt.org/z/P9cMnPqxK

skasowałem zbędne include żeby się kompilowało na godbolt

0

@MarekR22: dzięki już wszystko działą

0

Kompilator nie daje Ci żadnych błędów, lub chociaż warningów na temat funkcji main?

0

@MarekR22: A, jeszcze jedno. Dla czego case 2 należy do nOpcja a nie do nWybor1?

0

o, już wsyztsko gra

0

musiałem przerzucić klamry

0

Jeszcze raz używaj funkcji. Będzie łatwiej ogarnąć co i jak.
Nie pisz wszystkiego w jednej funkcji.

0
0

Dalej się dziwię, że nikt nie wspomniał o tym, że main ma zwracać int

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