Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 03.02.2019
Сообщений: 1

Error: a function-definition is not allowed here before '{' token|

03.02.2019, 19:44. Показов 1334. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
#include <iostream>
#include <string>

char board[9] = {};

void clearscreen(){
for(int i = 0;i<24;i++){
std::cout<<std::endl;
}
}

void clearboard(){
for (int i=0; i<9;i++){
board[i]='-';
}
}

bool has_won(char player){
int wins [][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7} ,{2,5,8},{0,4,8},{2,4,6}};
for(int i=0; i<8; i++){
int count = 0;
for(int j=0; j<3; j++){
if (board[wins[i][j]] == player);
count++;
}
if(count == 3){
return true;
}
}
return false;
}


void print_board(std::string indent){
// std::cout<<"Game board: \n";
std::cout<<std::endl;
std::cout<<indent<<"-"<<board[6]<<"-|-"<<board[7]<<"-|-"<<board[8]<<"-\n";
std::cout<<indent<<"-"<<board[3]<<"-|-"<<board[4]<<"-|-"<<board[5]<<"-\n";
std::cout<<indent<<"-"<<board[0]<<"-|-"<<board[1]<<"-|-"<<board[2]<<"-\n";

}

int get_move(){
std::cout<<"\nMove options: \n";
std::cout<<"-7-|-8-|-9-" <<std::endl;
std::cout<<"-4-|-5-|-6-" <<std::endl;
std::cout<<"-1-|-2-|-3-" <<std::endl;
std::cout<<"\n";
print_board("");
std::cout<<"\nYour move: ";

int move;
std::cin >> move;
while (move > 9 || move <1 || board[move-1] != '-'){
std::cout<<"Please enter a legal move (1-9): \n";
std::cin >> move;
}
return move;
}

char play_and_get_winner(){
clearboard();
int turn = 1;
while (!has_won('X')&&!has_won('0')){
clearscreen();
int move = get_move();
std::cout <<"The move you entered is: " << move <<std::endl;
if(turn%2==1){
board[move-1]='X';
if(has_won('X')){
std::cout <<"Congratulations player X! You have won!\n";
return 'X';
}
}else{
board[move-1]='0';
if(has_won('Y')){
std::cout <<"Congratulations player 0! You have won!\n";
return '0';
}
turn++;
if (turn = 10){
std::cout<<"\t It's a draw!\n";
}
}
}

int main(){
clearboard();
char winner = play_and_get_winner();
std::cout<<"The final board layout is: \n";
print_board("\t");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2019, 19:44
Ответы с готовыми решениями:

Error: a function-definition is not allowed here before '{' token|
Всем привет. Вот переписал код из учебника под названием &quot;Дирк Хенкеманс и Марк Ли программирование на c++&quot;. Код из игры под...

Error: a function-definition is not allowed here before '{' token
Добрый день. Помогите пожалуйста исправить ошибки 74 12 a function-definition is not allowed here before '{' token 113 1 expected...

A function-definition is not allowed here before '{' token как исправить
Ребята, помогите пожалуйста #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;locale.h&gt;...

1
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
03.02.2019, 19:45
Угу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2019, 19:45
Помогаю со студенческими работами здесь

Ошибка компиляции: a function-definition is not allowed here before '{' token;
У меня такая проблема. main.cpp #include &quot;main.h&quot; #include &lt;QtGUI&gt; #include &lt;QHBoxLayout&gt; #include &lt;QtCore/qcoreevent.h&gt; ...

A function-definition is not allowed here before
Здравствуйте! Скажите пожалуйста, где здесь ошибка в написании кода (синтаксиса): #include &lt;iostream&gt; using namespace...

Ошибка: Function definition is not allowed here и Expected expression среда xCode forMacOS
Не могу устранить ошибки. Что я сделал не так? ссылка на скрин ошибки1, и ошибки2 #include &lt;iostream&gt; using namespace std; ...

Multiple definition of function - linker error
Жалуется линкер на multiple definition функции TryParse, лог выглядит страшно непонятно. (В какой тег такое лучше засовывать, кстати?) ...

Error: function definition does not declare parameters
Здравствуйте, возникла проблема при компиляции исходников игры. Os freebsd 9.2 Gcc 4.2 C ++ 98 Все файлы компилируются, кроме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru