Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Gaveyn
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 23
30.09.2016, 15:31     Игра в закрашивание клеток #1
Двое ребят на клетчатом листе бумаги 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)
"требуется точка с запятой"
Но там же не нужна точка с запятой...Что не так
Срочно пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2016, 15:31     Игра в закрашивание клеток
Посмотрите здесь:

C++ из листа клетчатой бумаги N*N клеток вырезали М клеток . на сколько кусков распадается оставшаяся часть листа?
Посчитать количество занятых клеток кроссворда C++
C++ Сколько клеток находится под боем шахматного коня
C++ Определить, сколько существует различных раскрасок полоски из N клеток
Маршрут в матрице с наименьшей суммой клеток в пути C++
C++ Неправильно работает алгоритм поиска занятых клеток
Перекраска клеток C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
30.09.2016, 15:37     Игра в закрашивание клеток #2
Ты синтаксис for смотрел? Там 3 секции.
C++
1
for (; nm>0; )
GbaLog-
Не Эксперт C++
1883 / 732 / 201
Регистрация: 24.08.2014
Сообщений: 2,894
Записей в блоге: 1
Завершенные тесты: 2
30.09.2016, 15:39     Игра в закрашивание клеток #3
Вы циклы перепутали.
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
Gaveyn
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 23
30.09.2016, 15:46  [ТС]     Игра в закрашивание клеток #4
Благодарю за ответы,задача решена!
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
01.10.2016, 09:58     Игра в закрашивание клеток #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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
}
Gaveyn
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 23
01.10.2016, 15:30  [ТС]     Игра в закрашивание клеток #6
Это задача из олимпиады по программированию для учеников 9-10-11 классов.
Она не решабельна,так как пользователь с клавиатуры может вводить только 2 числа:M(длина поля) и N(ширина поля)
А дальше все зависит от человека.Он,если захочет,закрасит 2 клетки,или 3,или 4,или 10...
Как программа должна читать мысли?
Моя программа работает в том случае,если они каждый раз будут закрашивать максимальное количество клеток
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
01.10.2016, 16:13     Игра в закрашивание клеток #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Gaveyn Посмотреть сообщение
Она не решабельна,так как пользователь с клавиатуры может вводить только 2 числа:M(длина поля) и N(ширина поля)
А дальше все зависит от человека.
Внимательно читайте условие. Там сказано:
Цитата Сообщение от Gaveyn Посмотреть сообщение
при правильной игре
Правильная игра состоит в том, чтобы оставить противнику 4 * i клеток.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
01.10.2016, 17:36     Игра в закрашивание клеток #8
Mr.X, ты забыл, что можно убирать ещё и по 10 клеток, не только 1,2,3.
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
01.10.2016, 18:19     Игра в закрашивание клеток #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Mr.X, ты забыл, что можно убирать ещё и по 10 клеток, не только 1,2,3.
Убирая 10, мы убираем 2 по модулю 4, противник убирает тоже 2.
Gaveyn
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 23
01.10.2016, 20:25  [ТС]     Игра в закрашивание клеток #10
Как это реализовать?
GbaLog-
Не Эксперт C++
1883 / 732 / 201
Регистрация: 24.08.2014
Сообщений: 2,894
Записей в блоге: 1
Завершенные тесты: 2
01.10.2016, 20:27     Игра в закрашивание клеток #11
Цитата Сообщение от Gaveyn Посмотреть сообщение
Как это реализовать?
Что реализовать?
Gaveyn
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 23
01.10.2016, 22:11  [ТС]     Игра в закрашивание клеток #12
Цитата Сообщение от Mr.X Посмотреть сообщение
Правильная игра состоит в том, чтобы оставить противнику 4 * i клеток.
как это реализовать в c++?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2016, 22:20     Игра в закрашивание клеток
Еще ссылки по теме:

Сосчитать количество пересеченных отрезком клеток C++
C++ Пересечение клеток на плоскости отрезком
C++ Определить сколько клеток по периметру доски
C++ Нумерация клеток заданной полоски
C++ Проверка смежных клеток, максимум из всех возможных вариантов

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

Или воспользуйтесь поиском по форуму:
GbaLog-
Не Эксперт C++
1883 / 732 / 201
Регистрация: 24.08.2014
Сообщений: 2,894
Записей в блоге: 1
Завершенные тесты: 2
01.10.2016, 22:20     Игра в закрашивание клеток #13
Gaveyn, Игра в закрашивание клеток
Вот же Вам уже написали реализацию.
Yandex
Объявления
01.10.2016, 22:20     Игра в закрашивание клеток
Ответ Создать тему
Опции темы

Текущее время: 01:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru