С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Решение задачи на ветвление (2 коня и шахматная доска) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в уловии ( if ). выбрать из списка только тех, чья дата рождения попадает в вводимый с клавиатуры промежуток. http://www.cyberforum.ru/cpp-beginners/thread1094049.html
Задача состояла в том, чтобы из списка выбрать только тех, чья дата рождения попадает в вводимый с клавиатуры промежуток (tm1.tm - это дата начала промежутка, tm2.tm - конечная дата промежутка,...
C++ Написать программу пересчет валюты, курс валюты программа пересчета валюты.курс доллара -30.75 курс евро-39.83 оформить как константы.курс валюты ($ -доллар, e - евро, p - рубль) http://www.cyberforum.ru/cpp-beginners/thread1094042.html
Сделать простенький видео плеер с использованием FFMPEG C++
Ситуация такая. я программист новичок, и вот передо мной задача, имеется QT Creator C++, пытаюсь сделать простенький видео плеер с использованием FFMPEG но я не могу понять как вывести его...
Списки C++ C++
Уважаемые! Препод задал написать линейный, линейный дважды связанный и линейный цикличный списки с любым количеством элементов для каждого. То есть три разные проги. Напишите пожалст примеры этих...
C++ Удалить из матрицы строку, содержащую наибольшее количество нулевых элементов http://www.cyberforum.ru/cpp-beginners/thread1094022.html
Удалить из матрицы A(m*n) строку, содержащую наибольшее количество нулевых элементов. Программа отлажена работает, но падает когда матрица попадается без нулей как это исправить....
C++ Найти определитель матрицы Всем доброго приятного вечера!! Не могу написать программу на такую вот(см.на рис.) задачу, если мне не решить до завтра мне капец светит лето по ходу помогите прошу!! добрые люди дана матрица 3х3... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,254
11.02.2014, 15:04
Цитата Сообщение от hunter2014 Посмотреть сообщение
но не получается понять,
а что тут не понятного
конь ходит буквой "Г"
две по вертикали и одну клетку по горизонтали или одну по вертикали и две по горизонтали
в любом случае произведение дельт( разница между начальной и конечной точкой) даст 2 по модулю, отличатся могут знаками, влево/ вправо сходил вверх/вниз
например конь стоит на клетке 1 1 нужно проверить попадает ли он на клетку 3 2
проверяем
(3-1(дельта по вертикали)) * )(2-1( дельта по горизонтали ))
2*1=2
значит конь сходить на эту клетку может
в результате получается два if
первый проверяет может ли вообще белый конь попасть на эту клетку
второй проверяет бъется ли эта клетка черным конем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if ( (a-e)*(b-f) == 2 || (a-e)*(b-f) == -2)
{
 // белый конь может попасть на клетку e, f
   if ( (e-d)*(f-c) == 2 || (e-d)*(f-c) == -2)
     {
     // клетка  e, f бьется черным конем
     }
    else
     {
     // клетка  e, f не бьется черным конем
     }
 }
else
 {
// белый конь не может попасть на клетку e, f
 }
здесь не предусмотрен вариант что белый конь может сходить на место черного коня, т.е изначально стоит на клетке которая бьется черным конем
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.