Member 11412781 Ответов: 1

Как я могу использовать функцию в функции в C++


#include <iostream>
#include <string>
using namespace std;


void play();
void startgame();

int main()
{
    string wantToPlay;
    int counts[]={0,0,0};
	int timesPlayed;
	int userScore;
	int compScore;
      {
          play();
      }

      void startgame()
       {
          cout >>"Want to play ? Y or N";
          cin <<wantToPlay;
          while(wantToPlay=="Y"||wantToPlay=="y")
		{
		play();
		}
      }
      void play()
		{

		int userChoice=0;
		int userFav=-1;
		int moves[]={1,2,0};

      cout <<"Your Move ?"<<endl;
      cout <<"0 : Stone"<<endl;
      cout <<"1 : Paper"<<endl;
      cout <<"2 : Scissor"<<endl;
		cin >>userChoice;
		counts[userChoice]++;

	int compChoice = 0;
	int max = -1;
	if (timesPlayed == 0)
	{
		compChoice = static_cast<int>(std::floor(Math::random() * 3));
	}
	else
	{
		for (int i = 0;i < counts.size();i++)
		{
			if (counts[i] > max)
			{
				max = counts[i];
				userFav = i;
			}
		}

		compChoice = moves[userFav];
	}
std::wcout << std::wstring(L"Computer's Move : ") << compChoice << std::endl;
	int result = userChoice - compChoice;
	if (result == 1 || result == -2)
	{
		userScore++;
		std::wcout << std::wstring(L"You Win") << std::endl;
	}
	else if (result == 0)
	{
		std::wcout << std::wstring(L"Game Tied") << std::endl;
	}
	else
	{
		compScore++;
		std::wcout << std::wstring(L"You Lose") << std::endl;
	}

	std::wcout << std::wstring(L"You ") << userScore << std::wstring(L" - ") << compScore << std::wstring(L" Computer") << std::endl;
	timesPlayed = 1;
	startGame();

}
}


Что я уже пробовал:

ошибка: определение функции здесь не допускается перед токеном ' {'//это ошибка, которую я получаю

[no name]

Возможно, если вы отформатируете свой код так, чтобы он был читабельным, вы сможете увидеть ту часть, которая вызывает ошибку. Вы не можете определить функцию внутри другой функции, как вы пытаетесь сделать с "игрой".

[no name]

Чтобы добавить к вышесказанному, кажется, что вы не совсем понимаете, как объявлять, определять и вызывать функцию. Это основы, которые вы должны прочитать в первую очередь.

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
ошибка: определение функции здесь не допускается перед токеном' {'

C++ не позволяет определять функцию внутри другой функции.

Вот ссылки на справочники книг по С и с++ авторов этих языков. Обратите внимание, что C является предком C++, поэтому знание C всегда полезно с C++.
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]

Язык Программирования C++ [^]