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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2009, 20:17   #1
Paladast
Пользователь
 
Аватар для Paladast
 
Регистрация: 09.08.2009
Сообщений: 66
Вопрос Как ходят слоны

Доброе время суток.Неделю назад мне попалась инетерсная задачка:Даны координаты двух различных полей шахматной доски x1,y1,x2,y2(целые числа,лежащие в диапазоне 1-8).Проверить истиность высказывания:"Слон за один ход может перейти с одного поля на другое".За всю неделю мне не пришла на ум ни одна здравая мысль по поводу решения задачи,может светлые умы форума подскажут что то путевое!?
З.Ы. Писал подобные програмки на все фигуры кроме слона,ферзя и коня,больно уж хочу шахматы написать
Со мной бог и два пулемёта
Paladast вне форума Ответить с цитированием
Старый 12.09.2009, 20:20   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Например:
If (X2-X1=2) And (Y2-Y1=1) Then МОЖНО
Аналогично другие ходы (всего 8)

На всякий случай слон:
If X2-X1=Y2-Y1 Then МОЖНО
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.09.2009, 20:22   #3
Paladast
Пользователь
 
Аватар для Paladast
 
Регистрация: 09.08.2009
Сообщений: 66
По умолчанию

мдя...а другого варианта нет?
Со мной бог и два пулемёта
Paladast вне форума Ответить с цитированием
Старый 12.09.2009, 20:24   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А зачем другой вариант? 8 условий - нет так уж и много.
Есть другой вариант. Загнать в файл ВСЕ возможные ходы в шахматах. Только подозреваю, что весить этот файл будет с 1Тб.

Можно сократить кол-во условий используя ABS
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.09.2009, 20:26   #5
Paladast
Пользователь
 
Аватар для Paladast
 
Регистрация: 09.08.2009
Сообщений: 66
По умолчанию

восемь условий тоже не мало, а что ж тога с ферьзем получается бррр,ужесть какая...
Со мной бог и два пулемёта
Paladast вне форума Ответить с цитированием
Старый 12.09.2009, 20:29   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Как я уже сказал можно подсократить при ABS:
Код:
If ((Abs(X2-X1)=2) And (Abs(Y2-Y1)=1)) Or
   ((Abs(X2-X1)=1) And (Abs(Y2-Y1)=2)) Then Вуаля!
2 условия
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.09.2009, 20:47   #7
Paladast
Пользователь
 
Аватар для Paladast
 
Регистрация: 09.08.2009
Сообщений: 66
По умолчанию

Код:
Слон:
If X2-X1=Y2-Y1 Then МОЖНО
работает ) огромное спс, гут идея а насчет коня есть идеи?
Со мной бог и два пулемёта
Paladast вне форума Ответить с цитированием
Старый 12.09.2009, 20:49   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Смотри, как говорится, выше.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.09.2009, 20:51   #9
Paladast
Пользователь
 
Аватар для Paladast
 
Регистрация: 09.08.2009
Сообщений: 66
По умолчанию

Кажется я только что прозрел,еще раз спс, только я не понял к чему ABS, без него все будет работать великолепно а с ним вобще тупняк какойто получается!?
Со мной бог и два пулемёта
Paladast вне форума Ответить с цитированием
Старый 12.09.2009, 20:57   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Абс - модуль числа. ABSолютное значение
Вот смотри, если конь пойдет на 2 кл вверх и на одну вправо. Вообразил? А теперь если он пойдет на 2 вверх и на 1 ВЛЕВО. Это будет второе условие, разница координат в первом случае X2-X1=-1, во втором X2-X1=1. Если взять модуль - это объединяется в одно условие. Тоже в случае Y2-Y1.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слоны [MI_nor] Общие вопросы C/C++ 14 10.08.2009 14:45