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

Ход на шахматной доске - C++

Восстановить пароль Регистрация
 
qwer1234
12 / 12 / 3
Регистрация: 30.10.2012
Сообщений: 463
20.10.2013, 02:06     Ход на шахматной доске #1
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе - номер горизонтали. Данные натуральные числа k, l, m, n. Нужно, если возможно, с поля (k, l) одним ходом ферзя попасть на поле (m, n). Если нет - то определить, как это сделать за два хода (указать промежуточное поле).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2013, 02:06     Ход на шахматной доске
Посмотрите здесь:

C++ Числа на шахматной доске в С++
Числа на шахматной доске C++
C++ Числа на шахматной доске
C++ Замена фигур на шахматной доске
C++ Расставить n ладей на шахматной доске n*n
C++ Ход коня по шахматной доске случайным образом
C++ Задача о зернах на шахматной доске
C++ Геометрическая прогрессия на шахматной доске

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
20.10.2013, 04:21     Ход на шахматной доске #2
qwer1234, если нужно определить все варианты промежуточных ходов, то это предлагаю сделать самостоятельно. Простой вариант:
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>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
int k, l, m, n, dx, dy ;
cout<<"Введите положение k ферзя по горизонтали 1...8 ";
cin >> k ;
cout<<"Введите положение l ферзя по вертикали 1...8 ";
cin >> l ;
cout<<"Введите положение m поля по горизонтали 1...8 ";
cin >> m ;
cout<<"Введите положение n поля по вертикали 1...8 ";
cin >> n ;
dx = m - k ;
dy = n - l ;
 
if( !dx || !dy ||  abs(dx) == abs(dy) ){
cout << "один ход" << endl;
if( !dx ) cout << "бить по по вертикали с горизонтали " << l << " на " << n << endl;
if( !dy ) cout << "бить по по горизонтали с вертикали " << k << " на " << m << endl;
if( abs(dx) == abs(dy) ) 
cout << "бить по по диаганали с поля " << k << ", " << l << " на поле " << m << ", " << n << endl;
}
else {
    cout << "два хода" << endl;
 
cout << "Сдвиньте ферзя по горизонтали на вертикаль " << m << endl;
cout << "поля " << m <<" ," << l << endl;
cout<< "Затем сдвиньте ферзя по вертикали на горизонталь " << n << endl;
}
cout << endl;
system ("pause" );
    return 0;
}
Yandex
Объявления
20.10.2013, 04:21     Ход на шахматной доске
Ответ Создать тему
Опции темы

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