Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17

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

23.01.2012, 19:34. Показов 2812. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2012, 19:34
Ответы с готовыми решениями:

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

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

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

15
 Аватар для ШКІПЕР
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 20:53
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  [ТС]
спасибооо огромное!!!!!!только вот экран быстро исчезает после ввода значений=(....как сделать чтоб задерживался экран? и какие значения можно ввести чтоб было да и нет? а то я ведь не умею играть
0
 Аватар для ШКІПЕР
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 21:15
Цитата Сообщение от 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  [ТС]
ШКІПЕР- я тебя просто обожаю!!! спасибо тебе огромное!
0
 Аватар для ШКІПЕР
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 22:33
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  [ТС]
Ты мой ангел-спаситель!!!! ОГРОМНЕЙШЕЕ СПАСИБО ТЕБЕ!я так рада что ты мне помог!!!!

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

Рад помочь!

последний вопроскакие значения можно ввести чтоб было да и нет во второй задаче?
Любые! ;-) В смысле не очень любые - те, что под условие попадают.
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 22:50  [ТС]
прости что я немного туплю...а какие условия???просто я вообще в шахматах не разбираюсь мне хоть любые примеры которые подходят под условиячтоб я тебя больше не беспокоилаещё раз огромное спасибо
0
 Аватар для ШКІПЕР
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 22:55
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  [ТС]
спасибо огромное!пошутил ты на счёт шахматспасибо за совет ,может когда-нибудь научусь..но это мало вероятно
0
 Аватар для ШКІПЕР
99 / 99 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
23.01.2012, 23:09
Nata555, весьма рад помочь Код, правда, можно еще упростить убрав в with_elephant ненужные аргументы и передавая туда ссылку на масив... Если есть желание - поправь...

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

P.S. На счет шахмат - это не шутка, есть желание - бросай в ЛС ссылку на партию, помогу и это освоить ;-)
1
3 / 3 / 0
Регистрация: 23.01.2012
Сообщений: 17
23.01.2012, 23:44  [ТС]
хорошо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2012, 23:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru