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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
#1

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

20.10.2013, 02:06. Просмотров 700. Ответов 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++
В клетках шахматной доски находятся целые числа. --- Определить в программе глобальные данные- константу N=8 и двумерный числовой массив...

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...

Геометрическая прогрессия на шахматной доске - C++
Всем доброго времени суток.Отписывайтесь кто как решил. #include "head.h" void main() {//на поле 64 клетки ///сколько надо...

Замена фигур на шахматной доске - C++
задача. расставить случайным образом четырех коней на шахматной доске (два белых и два черных). вывести отдельно список полей под боем...

Расставить n ладей на шахматной доске n*n - C++
Вообщем нужно расставить n ладей на шахматной доске n*n Вот то что у меня получилось: #pragma argsused #include<iostream.h> int...

Задача о зернах на шахматной доске - C++
Математическая задача, в которой вычисляется, сколько будет зёрен на шахматной доске, если класть на каждую следующую клетку доски вдвое...

Просчет ходов Слона по шахматной доске - C++
Здравствуйте. Помогите, пожалуйста, с решением задачи на просчет ходов слона по шахматной доске. Функционал: Вводим: текущее...

Задача про зерна на шахматной доске - C++
Математическая задача про пшеничные зернышки и шахматную доску. Когда на первую клетку кладется одно зернышко, на вторую – два, на третью -...

Одного ли цвета клетки на шахматной доске? - C++
Даны координаты двух полей шахматной доски (координаты клетки - это 2 числа от 1 до 8: номер столбца и номер строки) Одно ли цвета эти...

Реализовать программу по распределению 8 слонов по шахматной доске - C++
Добрый день. Нужно реализовать программу по распределению 8 слонов по шахматной доске, которые не должны друг друга пересекать. Что сделать...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,495
Записей в блоге: 4
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;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru