|
0 / 0 / 0
Регистрация: 19.10.2021
Сообщений: 28
|
|
Анализ результатов игры в крестики-нолики21.02.2022, 23:44. Показов 2882. Ответов 2
Метки нет (Все метки)
Здравствуйте, помогите пожалуйста решить задачу:
Петя и Вася играли в крестики-нолики и не стёрли результаты своей игры. Теперь перед вами табличка 3 × 3, которая осталась после их поединка. Вы хотите понять, выиграл ли кто-то из них или они не доиграли. На вход программе даётся три строки, кодирующие верхнюю, среднюю и нижнюю строчки игрового поля. Крестик обозначается символом X (английская заглавная буква X), нолик — символом O (заглавная латинская буква O), пустая клетка — точкой. Если ввод некорректен, то есть такая таблица не могла получиться в ходе настоящей игры, то надо написать в ответ слово Incorrect. Если таблица корректна и выиграли крестики, то нужно вывести в ответ слова Petya won, если нолики — то Vanya won, а иначе (то есть они не доиграли или сыграли вничью) надо написать Nobody. Примеры: X.. OXO OOO Ответ: Incorrect (потому что ноликов в конце игры не может быть больше, чем крестиков). X.. .X. OO. Ответ: Nobody (потому что они не доиграли). XXO OOX XOX Ответ: Nobody (потому что это ничья). XO. XO. X.O Ответ: Incorrect (крестики уже победили, и ноликов не может быть столько же). OX. XOX X.O Заранее спасибо
0
|
|
| 21.02.2022, 23:44 | |
|
Ответы с готовыми решениями:
2
Дерево игры крестики нолики Бот для игры крестики-нолики Оптимизация кода игры в крестики нолики. |
| 22.02.2022, 17:25 | |
|
Не по теме: Заранее, пожалуйста. :)
0
|
|
|
2 / 2 / 0
Регистрация: 29.01.2022
Сообщений: 26
|
|
| 22.02.2022, 19:58 | |
|
Вот решение... Только зачем ты купил курсы в Скилбоксе и сам не делаешь задачи???
![]() #include <iostream> void CrossZero(std::string text, int *answerVictoryCross, int *answerVictoryZero, int *answerCross, int *answerZero, int *answerPoint, bool *answerGood){ bool good = true; int cross = 0, zero = 0, point = 0, RowCross = 0, RoWZero = 0, VictoryCross = 0, VictoryZero = 0; for(int i = 0; i < text.length(); i++){ if(text.length() == 3){ if(text[i] == 'X'){ cross++; RowCross++; }else if(text[i] == 'O'){ zero++; RoWZero++; }else if(text[i] == '.'){ point++; }else{ good = false; break; } }else{ good = false; break; } } if(RowCross == 3){ VictoryCross++; }else if (RoWZero == 3){ VictoryZero++; } (*answerVictoryCross) = VictoryCross; (*answerVictoryZero)= VictoryZero; (*answerCross) = cross; (*answerZero) = zero; (*answerPoint) = point; (*answerGood) = good; } int main() { std::string TopRow, MiddleRow, LowerRow, answer; std::cout << "Task 5. Analysis of the results of the tic-tac-toe game\n"; std::cout << "Enter cross and zero\n"; std::cin >> TopRow >> MiddleRow >> LowerRow; bool TopRowGood = true, MiddleRowGood = true, LowerRowGood = true; int cross = 0, zero = 0, point = 0, TopRowCross = 0, TopRowZero = 0, MiddleRoWCross = 0, MiddleRowZero = 0, LowerRowCross = 0, LowerRowZero = 0, VictoryCross = 0, VictoryZero = 0, TopRowVictoryCross = 0, TopRowVictoryZero = 0, MiddleRoWVictoryCross = 0, MiddleRowVictoryZero = 0, LowerRowVictoryCross = 0, LowerRowVictoryZero = 0, TopRowPoint = 0, MiddleRowPoint = 0, LowerRowPoint = 0; CrossZero(TopRow, &TopRowVictoryCross, &TopRowVictoryZero, &TopRowCross, &TopRowZero, &TopRowPoint, &TopRowGood); CrossZero(MiddleRow, &MiddleRoWVictoryCross, &MiddleRowVictoryZero, &MiddleRoWCross, &MiddleRowZero, &MiddleRowPoint, &MiddleRowGood); CrossZero(LowerRow, &LowerRowVictoryCross, &LowerRowVictoryZero, &LowerRowCross, &LowerRowZero, &LowerRowPoint, &LowerRowGood); VictoryCross = TopRowVictoryCross + MiddleRoWVictoryCross + LowerRowVictoryCross; VictoryZero = TopRowVictoryZero + MiddleRowVictoryZero + LowerRowVictoryZero; cross = TopRowCross + MiddleRoWCross + LowerRowCross; zero = TopRowZero + MiddleRowZero + LowerRowZero; point = TopRowPoint + MiddleRowPoint + LowerRowPoint; if(TopRowGood && MiddleRowGood && LowerRowGood){ if((TopRow[0] == 'X' && MiddleRow[0] == 'X' && LowerRow[0] == 'X') || (TopRow[1] == 'X' && MiddleRow[1] == 'X' && LowerRow[1] == 'X') || (TopRow[2] == 'X' && MiddleRow[2] == 'X' && LowerRow[2] == 'X') || (TopRow[0] == 'X' && MiddleRow[1] == 'X' && LowerRow[2] == 'X') || (TopRow[2] == 'X' && MiddleRow[1] == 'X' && LowerRow[0] == 'X')){ VictoryCross++; } if((TopRow[0] == 'O' && MiddleRow[0] == 'O' && LowerRow[0] == 'O') || (TopRow[1] == 'O' && MiddleRow[1] == 'O' && LowerRow[1] == 'O') || (TopRow[2] == 'O' && MiddleRow[2] == 'O' && LowerRow[2] == 'O') || (TopRow[0] == 'O' && MiddleRow[1] == 'O' && LowerRow[2] == 'O') || (TopRow[2] == 'O' && MiddleRow[1] == 'O' && LowerRow[0] == 'O')){ VictoryZero++; } if(VictoryCross > 1 || VictoryZero > 1 || (VictoryCross >= 1 && VictoryZero >= 1) || (VictoryCross == 1 && zero >= cross) || (VictoryZero == 1 && cross >= zero) || (VictoryZero == 1 && cross < zero) || (VictoryCross == 1 && zero != (cross - 1) ) ){ answer = "Incorrect"; }else if(VictoryCross == 0 && VictoryZero == 0 && point >= 0){ answer = "Nobody"; }else if(VictoryCross == 1 && VictoryZero == 0){ answer = "Petya won"; }else if(VictoryCross == 0 && VictoryZero == 1){ answer = "Vanya won"; } }else{ answer = "Incorrect"; } std::cout << answer; }
1
|
|
| 22.02.2022, 19:58 | |
|
Помогаю со студенческими работами здесь
3
Приделать к коду игры крестики нолики ИИ Логика для игры крестики нолики Крестики-нолики - алгоритм для игры против ПК Как оптимизировать данный код игры крестики нолики? Написать AI для игры крестики-нолики (алгоритм самообучающегося бота) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|