Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2014, 20:05   #1
Eldirecto
Новичок
Джуниор
 
Регистрация: 18.01.2014
Сообщений: 5
По умолчанию Задача с шахматами

На шахматной доске расставлены три фигуры. Используя стандартные правила шахматной игры, определить бьют они друг друга или нет. Расположение фигур вводится пользователем с клавиатуры в общепринятой форме: номер вертикали по которой расположена фигура, определяются буквой латинского алфавита от "a" и "h" номер горизонтали от 1 до 8.
Фигуры (король, ферзь, ферзь)

Последний раз редактировалось Eldirecto; 18.01.2014 в 21:06.
Eldirecto вне форума Ответить с цитированием
Старый 18.01.2014, 20:16   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Что не получается?
Кстати, на мой взгляд, условие не полно без информации о самих фигурах (достоинство, цвет).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.01.2014, 20:33   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Кстати, на мой взгляд, условие не полно без информации о самих фигурах (достоинство, цвет).
Не соглашусь по цвету..
Poma][a вне форума Ответить с цитированием
Старый 18.01.2014, 20:34   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Poma][a, ну да...
Хотя если одноцветные бьют друг друга, то это плохо
Остановимся пока на нехватке достоинства фигур, чтобы выбирать правила хода.
Кстати, язык тоже неплохо указать
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.01.2014, 20:59   #5
Eldirecto
Новичок
Джуниор
 
Регистрация: 18.01.2014
Сообщений: 5
По умолчанию

Ох-хо-хо извиняюсь совсем про фигуры забыл указать (король,ферзь,ферзь) а язык C++

Последний раз редактировалось Eldirecto; 18.01.2014 в 21:06.
Eldirecto вне форума Ответить с цитированием
Старый 18.01.2014, 21:10   #6
Eldirecto
Новичок
Джуниор
 
Регистрация: 18.01.2014
Сообщений: 5
По умолчанию

BDA. Все не получается. Я будучи практически не зная C++ должен сваять код. А я даже не знаю в каком направление идти. Если можно подскажите алгоритм решения или напишите свой вариант. Буду безмерно благодарен.
Eldirecto вне форума Ответить с цитированием
Старый 18.01.2014, 21:13   #7
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Вот тут про две фигуры написано. Перенесите на 3 и все.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 18.01.2014, 21:13   #8
Eldirecto
Новичок
Джуниор
 
Регистрация: 18.01.2014
Сообщений: 5
По умолчанию

Vanta11a. Спасибо. Попробую.
Eldirecto вне форума Ответить с цитированием
Старый 18.01.2014, 21:29   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
#include <iostream>
using namespace std;

int
check_king(char x1, char y1, char x2, char y2)
{
    return abs(x1 - x2) < 2 && abs(y1 - y2) < 2;
}

int
check_queen(char x1, char y1, char x2, char y2)
{
    return abs(x1 - x2) == abs(y1 - y2) || x1 - x2 == 0 || y1 - y2 == 0;
}

int main() {
    char a[7];
    cin >> a;
    a[0] -= '1';
    a[2] -= '1';
    a[4] -= '1';
    a[1] -= 'a';
    a[3] -= 'a';
    a[5] -= 'a';
    if (check_king(a[0], a[1], a[2], a[3]))
        cout << "Король бьет 1 ферзя" << endl;
    if (check_king(a[0], a[1], a[4], a[5]))
        cout << "Король бьет 2 ферзя" << endl;    
    if (check_queen(a[2], a[3], a[0], a[1]))
        cout << "1 ферзь бьет короля" << endl;
    if (check_queen(a[2], a[3], a[4], a[5]))
        cout << "ферзи бьют друг друга" << endl;
    if (check_queen(a[4], a[5], a[0], a[1]))
        cout << "2 ферзь бьет короля" << endl;
}
Вводить подряд, например, 1a2b3c (в 100% правильности не уверен - тестируйте).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 18.01.2014 в 21:37.
BDA вне форума Ответить с цитированием
Старый 18.01.2014, 21:59   #10
Eldirecto
Новичок
Джуниор
 
Регистрация: 18.01.2014
Сообщений: 5
Хорошо

BDA. Даже если и не на 100% верно все равно безмерно благодаен.
Eldirecto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51