Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
99 / 98 / 11
Регистрация: 12.09.2016
Сообщений: 195

Игра в закрашивание клеток

30.09.2016, 15:31. Показов 4884. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Двое ребят на клетчатом листе бумаги N × M клеток играют в такую игру: они по очереди закрашивают клетки (изначально все клетки не закрашены). За ход разрешается закрасить 1, 2, 3 или 10 любых ещё не закрашенных клеток. Выигрывает тот, кто закрасит последнюю клетку. Кто выигрывает при правильной игре?

--
вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream> 
using namespace std;
int main() {
    int n;
    int m;
    int nm;
    int pb = 0;
    cin>>n;
    cin >> m;
    nm = m*n;
    for (nm>0)
    {
        if (nm>10) {
            nm = nm - 10;
            pb = pb++;
        }
        else if (nm>3 && nm<10) {
            nm = nm - 3;
            pb = pb++;
        }
        else if (nm == 2) {
            nm = nm - 2;
            pb = pb++;
        }
        else if (nm == 1) {
            nm = nm - 1;
            pb = pb++;
        }
    }
    if (pb % 2 == 0) {
        cout<<"1"<<endl;
    }
    else {
        cout<<"2"<<endl;
    }
    return 0;
}
выдает тут ошибку
C++
1
for (nm>0)
"требуется точка с запятой"
Но там же не нужна точка с запятой...Что не так
Срочно пожалуйста
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2016, 15:31
Ответы с готовыми решениями:

Игра "Жизнь": найти конфигурацию клеток, которая будет через k поколений от заданного
Игра «Жизнь» была придумана английским математиком Джоном Конвейем в 1970 году. Впервые описание этой игры опубликовано в октябрьском...

Игра сапёр (рекурсивное открытие клеток)
procedure Openk(i1,j1:integer); begin if (mas=0)and(i1&lt;=8) and (i1&gt;=0) and (j1&lt;=8) and (j1&gt;=0) then begin masf:=1; if...

Как увеличить количество клеток (игра парные картинки)?
Народ Вот код подскажите какая строка будет отвечать за увлечение кол-ва клеток в игре... uses Windows, Messages, SysUtils, Variants,...

12
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.09.2016, 15:37
Ты синтаксис for смотрел? Там 3 секции.
C++
1
for (; nm>0; )
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
30.09.2016, 15:39
Вы циклы перепутали.
http://en.cppreference.com/w/cpp/language/while
attr(optional) while ( condition ) statement
http://en.cppreference.com/w/cpp/language/for
attr(optional) for ( declaration-or-expression(optional) ; declaration-or-expression(optional) ; expression(optional) ) statement
0
99 / 98 / 11
Регистрация: 12.09.2016
Сообщений: 195
30.09.2016, 15:46  [ТС]
Благодарю за ответы,задача решена!
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.10.2016, 09:58
Лучший ответ Сообщение было отмечено Gaveyn как решение

Решение

Цитата Сообщение от Gaveyn Посмотреть сообщение
задача решена!
Gaveyn, как говорил Чарльз Хоар, существует два способа создания программного обеспечения: первый — делать программы настолько простыми, что в них явно не будет никаких дефектов; второй — делать их настолько сложными, что в них трудно отыскать явные дефекты. Первый способ намного сложнее.

По первому способу где-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Двое ребят на клетчатом листе бумаги N × M клеток играют в такую игру:
//они по очереди закрашивают клетки (изначально все клетки не закрашены).
//За ход разрешается закрасить 1, 2, 3 или 10 любых ещё не закрашенных клеток.
//Выигрывает тот, кто закрасит последнюю клетку. Кто выигрывает при правильной игре?
///////////////////////////////////////////////////////////////////////////////
#include <iostream>
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        int     k{};
        std::cout   <<  "M*N = ";
        std::cin    >>  k;
 
        std::cout   <<  1   +   (k % 4   ==  0)
                    <<  std::endl
                    <<  std::endl;
    }//for
}
0
99 / 98 / 11
Регистрация: 12.09.2016
Сообщений: 195
01.10.2016, 15:30  [ТС]
Это задача из олимпиады по программированию для учеников 9-10-11 классов.
Она не решабельна,так как пользователь с клавиатуры может вводить только 2 числа:M(длина поля) и N(ширина поля)
А дальше все зависит от человека.Он,если захочет,закрасит 2 клетки,или 3,или 4,или 10...
Как программа должна читать мысли?
Моя программа работает в том случае,если они каждый раз будут закрашивать максимальное количество клеток
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.10.2016, 16:13
Лучший ответ Сообщение было отмечено Gaveyn как решение

Решение

Цитата Сообщение от Gaveyn Посмотреть сообщение
Она не решабельна,так как пользователь с клавиатуры может вводить только 2 числа:M(длина поля) и N(ширина поля)
А дальше все зависит от человека.
Внимательно читайте условие. Там сказано:
Цитата Сообщение от Gaveyn Посмотреть сообщение
при правильной игре
Правильная игра состоит в том, чтобы оставить противнику 4 * i клеток.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
01.10.2016, 17:36
Mr.X, ты забыл, что можно убирать ещё и по 10 клеток, не только 1,2,3.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.10.2016, 18:19
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Mr.X, ты забыл, что можно убирать ещё и по 10 клеток, не только 1,2,3.
Убирая 10, мы убираем 2 по модулю 4, противник убирает тоже 2.
0
99 / 98 / 11
Регистрация: 12.09.2016
Сообщений: 195
01.10.2016, 20:25  [ТС]
Как это реализовать?
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
01.10.2016, 20:27
Цитата Сообщение от Gaveyn Посмотреть сообщение
Как это реализовать?
Что реализовать?
0
99 / 98 / 11
Регистрация: 12.09.2016
Сообщений: 195
01.10.2016, 22:11  [ТС]
Цитата Сообщение от Mr.X Посмотреть сообщение
Правильная игра состоит в том, чтобы оставить противнику 4 * i клеток.
как это реализовать в c++?
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
01.10.2016, 22:20
Gaveyn, Игра в закрашивание клеток
Вот же Вам уже написали реализацию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.10.2016, 22:20
Помогаю со студенческими работами здесь

Дана полоска из клеток: вывести последовательность номеров клеток, с которыми совершается действие
Дана полоска из клеток, пронумерованных от 1 до N. На каждом ходе разрешено поставить фишку на клетку (если её там еще нет) или снять фишку...

Найдите максимальную красоту среди красот всех клеток и количество клеток, имеющих такую красоту
Помогите с Олимпиадой задачкой. Проходит не все тесты: Видимость звездочек (упрощенная версия) ограничение времени на тест: 1...

Заполните матрицу 8*8 целых чисел так, чтобы нули располагались в позициях белых клеток, а единицы-в позициях черных клеток шахматной доски
помогите пожалуйста сделать Задание 4 Заполните матрицу 8*8 целых чисел так, чтобы нули располагались в позициях белых клеток, а...

Закрашивание
&lt;?php function rndrgb($img,$color,$min,$max){ srand(); $rnd = mt_rand(150,255); switch ($color){ case &quot;red&quot;: return...

Закрашивание
Я создал объект прямоугольник, и внутри него я нарисовал 10 прямоугольников линиями. Можно ли как-нибудь закрасить то, что внутри линий,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru