3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
1

Определить сможет ли белый слон расположенный на поле (a,b),одним ходом пойти на поле (e,f),не попав при этом под удар чёрного коня нах.(c,d)

23.01.2012, 19:34. Показов 2350. Ответов 15
Метки нет (Все метки)

ребята помогите пожалуйста!я в с++ вообще не бум-бум! у меня 2-е задачи с шахматами!а я даже играть не умею в них!помогите пожалуйста!я буду вам очень признательна!

1.Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число -номер вертикали( при счёте слева направо), второе- номер горизонтали (при счёте снизу вверх). Даны натуральные числа- a,b,c,d,e,f, каждое из которых не превосходит восьми.определить, сможет ли белый слон ,расположенный на поле (a,b),одним ходом пойти на поле (e,f),не попав при этом под удар чёрного коня находящегося на поле(c,d).
ХОТЯ БЫ ЭТУ ПОМОГИТЕ ПОЖАЛУЙСТА!

А вот вторая...ну это вообще сложная...если кто сможет то помогите и с ней.
2.Шахматную доску представить в виде квадратного символьного массива размером 8*8. Позиция каждой шахматной фигуры определяется парой натуральных чисел , каждое из которых не превосходит восьми :первое число -номер вертикали( при счёте слева направо), второе- номер горизонтали (при счёте снизу вверх). Даны натуральные числа- a,b,c,d, каждое из которых не превосходит восьми.определить поля (отметить их символом "+"), на которые может пойти белая ладья, расположенная на поле (a,b), не попав при этом под удар чёрного слона, находившегося на поле(c,d).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2012, 19:34
Ответы с готовыми решениями:

Определить, сможет ли белый слон одним ходом пойти на поле (e, f), не попав при этом под удар
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми:...

Определить, сможет ли белый слон перейти с одного поля на другое, не попав при этом под удар черного ферзя
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми:...

Определить сможет ли белый слон одним ходом пройти на поле
Поле шахматной доски определяется парой натуральных целых чисел, каждое из которых не превосходит...

Определить, может ли белая фигура пойти на поле (e, f), не попав при этом под удар черной фигуры
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми:...

15
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 20:53 2
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
bool valid(const int a)
{
    if (
        a<=8 && a>=1
        )
      return true;
    else return false;
}
 
int main()
{
    int a[6]; /*здесь храним данные о расположении фигур*/
    for (int i=0; i<=5; ++i)
    {
        scanf("%d", &a[i]);     
        if (!valid(a[i]))
        {
            puts("Error! Try again!");
            --i;
        }
    }   /*считали, проверили*/
            if ( 
                abs( a[4] - a[0] ) + abs( a[5] - a[1] ) == 3    //      
                &&                                              //Работает по принцыпу "опа - и все готово"
                abs( a[4] - a[2] ) + abs( a[5] - a[3] ) != 3    //Идет проверка на возможность хода и есть ли данный ход общий для обох фигур.
            )                                                   //
                puts("YES");
            else 
                puts("NO");
 
    return EXIT_SUCCESS;
}
Немножко вариаций и первая задача готова
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 21:03  [ТС] 3
спасибооо огромное!!!!!!только вот экран быстро исчезает после ввода значений=(....как сделать чтоб задерживался экран? и какие значения можно ввести чтоб было да и нет? а то я ведь не умею играть
0
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 21:15 4
Цитата Сообщение от Nata555 Посмотреть сообщение
как сделать чтоб задерживался экран?
C++
1
2
3
4
5
6
/*****/
char ch;
scanf ("%c", &ch);
 
return EXIT_SUCCESS;
}
Примерно так или еще так:

C++
1
2
3
getchar();
return EXIT_SUCCESS;
}
Или так:

C++
1
2
3
4
5
6
7
#include <conio.h>
 
/*************/
 
_getch();
return EXIT_SUCCESS;
}


Цитата Сообщение от Nata555 Посмотреть сообщение
и какие значения можно ввести чтоб было да и нет?
Например:
2 1
7 7
3 3


и

2 1
5 2
3 3
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 22:20  [ТС] 5
ШКІПЕР- я тебя просто обожаю!!! спасибо тебе огромное!
0
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 22:33 6
Nata555, в таком случае вторая задача:

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
 
bool valid(const int a)
{
    if (
        a<=8 && a>=1
        )
      return true;
    else return false;
}
 
bool elephant (const int x, const int y, const int a, const int b)
{
    if (abs(x-a) == abs(y-b))
        return true;
    else
        return false;
}
 
bool search_main(const int a, const int b, const int x, const int y)
{
    if (a == x || b==y)
        return true;
    else
        return false;
}
 
 
bool with_elephant(const int a0, const int a1, const int a2, const int a3, const int x, const int y)
{
    if (a0 == a2)
    {
        if (a2 - a3 > 0 && x < a3)
            return false;
        if (a2 - a3 < 0 && x > a3)
            return false;
    }
    else
 
    if (a1 == a3)
    {
        if (a0 - a2 > 0 && y < a2)
            return false;
        if (a0 - a2 < 0 && y > a2)
            return false;
    }
    else
    return true;
}
 
int main()
{
    int a[4]; /*здесь храним данные о расположении фигур*/
    for (int i=0; i<=3; ++i)
    {
        scanf("%d", &a[i]);     
        if (!valid(a[i]))
        {
            puts("Error! Try again!");
            --i;
        }
    }
 
 
    for (int x=8; x>=1; --x){
        for (int y=1; y<=8; ++y)
        {
            if (            
            !elephant(x, y, a[2], a[3])
            &&  
            search_main(a[0],a[1],x,y)
            &&
            with_elephant(a[0], a[1], a[2], a[3], x, y)
            )
            printf(" + ");
            else
                printf(" - ");
        }
        puts("\n");
    }
    _getch();
    return EXIT_SUCCESS;
}
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 22:39  [ТС] 7
Ты мой ангел-спаситель!!!! ОГРОМНЕЙШЕЕ СПАСИБО ТЕБЕ!я так рада что ты мне помог!!!!

Добавлено через 3 минуты
последний вопроскакие значения можно ввести чтоб было да и нет во второй задаче?
1
go
Эксперт С++
3645 / 1377 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
23.01.2012, 22:40 8
Цитата Сообщение от Nata555 Посмотреть сообщение
только вот экран быстро исчезает после ввода значений=(...
https://www.cyberforum.ru/cpp-... 10807.html
0
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 22:42 9
Nata555, да нет за что
Вторую задачу только что поправил, вообщем смотри. Если есть вопросы - задавай.

Рад помочь!

последний вопроскакие значения можно ввести чтоб было да и нет во второй задаче?
Любые! ;-) В смысле не очень любые - те, что под условие попадают.
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 22:50  [ТС] 10
прости что я немного туплю...а какие условия???просто я вообще в шахматах не разбираюсь мне хоть любые примеры которые подходят под условиячтоб я тебя больше не беспокоилаещё раз огромное спасибо
0
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 22:55 11
Nata555, на самом деле все просто: lichess.org, рекомендую.
Во второй задачи: первое число - это как буква, например А1 на доске будет 1 1 в примере.

Примеры:
3 3
5 4


Нет никаких ограничений - можно вводить все числа от 1 до 8, но только координаты не должны совпадать (этого не предусмотрел, так как в условии вроде указано, что координаты разные у всех...).
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 22:59  [ТС] 12
спасибо огромное!пошутил ты на счёт шахматспасибо за совет ,может когда-нибудь научусь..но это мало вероятно
0
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 23:09 13
Nata555, весьма рад помочь Код, правда, можно еще упростить убрав в with_elephant ненужные аргументы и передавая туда ссылку на масив... Если есть желание - поправь...

P.S. И не забывай, что вторая задача слегка изменена.
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 23:17  [ТС] 14
неее=)вдруг что-нибудь не то уберуспасибо ещё раз!!!
0
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 23:33 15
Цитата Сообщение от Nata555 Посмотреть сообщение
вдруг что-нибудь не то уберу
Как же кодить собралась ? Всегда нужно пробовать - известно, что учатся на своих ошибках, во всяком случае есть оригинал в теме (если что-то пойдет не так).

P.S. На счет шахмат - это не шутка, есть желание - бросай в ЛС ссылку на партию, помогу и это освоить ;-)
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 23:44  [ТС] 16
хорошо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2012, 23:44
Помогаю со студенческими работами здесь

Определить, может ли белая фигура пойти на поле, не попав при этом под удар черной фигуры
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми:...

Определить, может ли белая фигура пойти на поле (e,f), не попав при этом под удар черной фигуры
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми:...

Определить, может ли белая ладья пойти на заданное поле, не попав при этом под удар чёрной ладьи
Даны натуральные числа a,b,c,d,e,f каждое из которых не превосходит восьми.На поле(a,b) шахматной...

Может ли белая фигура пойти на поле (e,f), не попав при этом под удар черной фигуры
Дураку уж помогите(((( 1. Поле шахматной доски определяется парой натуральных чисел, каждое из...

Шахматы: может ли белая фигура пойти на поле ef, не попав при этом под удар черной фигуры?
Поле шахматной доски определяется парой чисел, каждое из которых не превосходит 8: 1е число - номер...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru