С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 15
1

Квадраты в игре "Крестики-нолики"

27.10.2015, 20:43. Показов 3959. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Квадраты в игре "Крестики-нолики" пронумерованы так, как показано ниже.
1 2 3
4 5 6
7 8 9
Напишите программу, которая по введенным номерам трех квадратов N1, N2, N3 (N1<N2<N3) проверяет, лежат ли они на одной диагонали или вертикали или горизонтали или нет.помогите составить код!(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2015, 20:43
Ответы с готовыми решениями:

Написать регистрацию игроков к игре крестики-нолики
Здраствуйте!!! У меня возникла проблема при написании игры &quot;Хрестики нулики&quot; как мне в коде...

Сделать статистику игроков в игре "Крестики-нолики"
Доброго времени суток! Вот, решил для курсовой работы написать игру Крестики-нолики. Подскажите,...

Алгоритм хода компьютера в игре "Крестики-Нолики" на неограниченном поле
Крестики нолики на неограниченном поле

Крестики нолики
Нужно написать программу крестики нолики.

9
0 / 0 / 0
Регистрация: 17.06.2018
Сообщений: 59
18.06.2018, 23:16 2
Мне тоже было бы интересно посмотреть на результат
0
1468 / 1009 / 456
Регистрация: 30.10.2017
Сообщений: 2,800
19.06.2018, 00:08 3
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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
bool checkLine(int n1, int n2, int n3)
{
    if (n1 == n2 || n2 == n3)
        return false;
 
    int dx = n2 / 3 - n1 / 3;
    int dy = n2 % 3 - n1 % 3;
    int dx2 = n3 / 3 - n2 / 3;
    int dy2 = n3 % 3 - n2 % 3;
 
    if (dx == dx2 && dy == dy2)
        return true;
    else
        return false;
}
 
int main()
{
    int n1, n2, n3;
 
    cin >> n1 >> n2 >> n3;
 
    if (checkLine(n1 - 1, n2 - 1, n3 - 1))
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
    
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 17.06.2018
Сообщений: 59
19.06.2018, 00:20 4
А можно ее решить используя switch case или if, else, else if?
0
1468 / 1009 / 456
Регистрация: 30.10.2017
Сообщений: 2,800
19.06.2018, 00:51 5
Roman2702, а она чем решена?

Добавлено через 30 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    int n1, n2, n3;
 
    cin >> n1 >> n2 >> n3;
    
    if (n1 == 1 && n2 == 2 && n3 == 3 || n1 == 4 && n2 == 5 && n3 == 6 || n1 == 7 && n2 == 8 && n3 == 9 || n1 == 1 && n2 == 4 && n3 == 7 || n1 == 2 && n2 == 5 && n3 == 8 || n1 == 3 && n2 == 6 && n3 == 9 || n1 == 1 && n2 == 5 && n3 == 9 || n1 == 3 && n2 == 5 && n3 == 7)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
 
    system("pause");
    return 0;
}
1
Модератор
Эксперт по электронике
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,706
19.06.2018, 07:27 6
Цитата Сообщение от ytrt6u Посмотреть сообщение
Квадраты в игре "Крестики-нолики" пронумерованы так, как показано ниже
создаем себе трудности, потом героически их преодолеваем достаточно создать "магический квадрат", например так
2 7 6
9 5 1
4 3 8
и и вся проверка будет (n1+n2+n3)==15
2
0 / 0 / 0
Регистрация: 17.06.2018
Сообщений: 59
19.06.2018, 12:12 7
Это типо если сложить по вертикали, либо горизонтали или по диагонали должно выйти 15?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    int n1, n2, n3;
 
    cin >> n1 >> n2 >> n3;
    
    if (n1 == 1 && n2 == 2 && n3 == 3 || n1 == 4 && n2 == 5 && n3 == 6 || n1 == 7 && n2 == 8 && n3 == 9 || n1 == 1 && n2 == 4 && n3 == 7 || n1 == 2 && n2 == 5 && n3 == 8 || n1 == 3 && n2 == 6 && n3 == 9 || n1 == 1 && n2 == 5 && n3 == 9 || n1 == 3 && n2 == 5 && n3 == 7)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
 
    system("pause");
    return 0;
}
Я так понял тут только горизонталь проверяется
0
1468 / 1009 / 456
Регистрация: 30.10.2017
Сообщений: 2,800
19.06.2018, 12:18 8
Roman2702, все проверяются, скроллер подвиньте.
1
0 / 0 / 0
Регистрация: 17.06.2018
Сообщений: 59
19.06.2018, 23:30 9
Все понял. Спасибо. А так просто текст обрезан был...

Добавлено через 11 часов 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
void main() {
 int a = 0, b = 0, c = 0;
 cin >> a >> b >> c;
 
 if (a < b&&b < c && a >= 1 && c <= 9) {
  if (a == b - 1 && b == c - 1 && c % 3 == 0)
   cout << "horizon\n";
  else if (a == b - 3 && b == c - 3)
   cout << "vertical\n";
  else if (a == b - 4 && b == c - 4 && a == 1 ||
   a == b - 2 && b == c - 2 && a == 3)
   cout << "diagonal\n";
  else cout << "Mimo\n";
 }
 else
  cout << "Input error\n";
 system("pause");
}
Добавлено через 1 минуту
Вот пример с подробностями, только заместо n1 n2 n3, abc
0
Модератор
Эксперт по электронике
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,706
19.06.2018, 23:52 10
Вот
по мотивам "магического квадрата"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
void main()
 {
static int Table[]={0, 
                  2,7,6,
                  9,5,1,
                  4,3,8};
 int n1, n2, n3;
  cin >> n1 >> n2 >> n3;
 if((Table[n1]+Table[n2]+Table[n3])==15)
   cout << "BINGO"<<endl;
  else
   cout << "O-O-P-S";
 
}
1
19.06.2018, 23:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2018, 23:52
Помогаю со студенческими работами здесь

Крестики нолики
Помогите зделать защитить клетку от перезаписи другим игроком и написать функцию Check(), которая...

Крестики-Нолики
Помогите, именно переделать этот код, как сделать не повторения ходов, что бы например позицию 1:1...

Крестики-нолики
Доброго времени суток! Вот, решил для курсовой работы написать игру Крестики-нолики. Но мне...

C++ Крестики нолики
Докончите программу, Реализуйте проверку на победу одного из игроков, минимум две комбинации для...

Крестики нолики
Уж слишком запутался даже в такой простом коде: #include &lt;iostream&gt; #include &lt;cstring&gt; #include...

Крестики-нолики
Доброго времени суток. Решил написать крестики-нолики, но возник какой-то косяк на ровном (и...

Крестики-нолики
Всем привет. Учусь программировать с нуля, пока могу делать только что-нибудь простое. Хочу начать...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru