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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2016, 19:27   #11
zagonicb
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
а) Согласен (но нет проверки, что (a,b) не совпадает с (c,d))
б) Согласен (но нет проверки, что (a,b) не совпадает с (c,d))
в) Не согласен
Код:
!(a == c && b == d) && Math.abs(a - c) <= 1 && Math.abs(b - d) <= 1
г) Не согласен
Код:
!(a == c && b == d) && (a == c || b == d || Math.abs(a - c) == Math.abs(b - d))
д) Частично согласен
Код:
if (a == c && (d - b == 1 || (b == 2 && d - b == 2))){ 
    console.log("Белая Пешка ходит на поле c, d"); 
} else if(Math.abs(c - a) == 1 && d - b == 1){ 
    console.log("Белая Пешка бьет фигуру"); 
} else{ 
    console.log("Не верный ход"); 
}
Добавлен еще случай хода с исходной позиции
е) Лень Аналогично белой пешке
ж) Согласен
Здравствуйте BDA а почему вы частично согласны? там же 2 случая, когда пешка ходит и бьет фигуру снизу вверх независимо от позиции. ААА понял вас))))
BDA а можно узнать ваши рассуждения по поводу Ферзя? Как вы учили, найти зависимость)
Посмотрите я ферзя подправил, но я посмотрел возможные варианты ходов.
Код:
if (a == c || b == d || c - d == 0 || Math.abs(a - c) == Math.abs(b - d)){
    console.log("Ферзь угрожает полю c, d");
  }
  else{
    console.log("Не верный ход");
  }
Допустим Ферзь a = 5 b = 5, возможные ходы при совпадении a == c или b == d, но не всегда a и c совпадают c b и d следовательно с = 4, d = 4(c - d == 0), еще вариант c = 8, d = 2 тут с вашей подсказкой есть зависимость разности натуральных чисел которые между собой равны следовательно (Math.abs(a - c) == Math.abs(b - d)).
Но вы так быстро находите эти варианты и правильно, что я других не могу замечать. Вы так же ищите варианты возможных ходов?


Друзья, хочу вас поблагодарить, что вы мне помогаете, так как я самоучка и у меня нет наставников, и я очень хочу научиться программировать и очень стараюсь. Скажите у меня есть потенциал? Почему я взялся за эти задачи? Потому что у меня с разработкой алгоритма и с логикой беда и я решил начать с нуля, основы я все прошел, пошел дальше но некоторые элементарные действия я не мог понять... вот таким путем я начал с практики, чтоб чего то добиться.

По поводу короля, хитро у вас получилось, сам бы я не додумался, ну может если бы сидел неделю)). Сейчас просто много вариантов перебирал. Как вы пришли к такому выводу?
|| запинается на «правде», && запинается на «лжи».

Последний раз редактировалось zagonicb; 16.04.2016 в 21:59.
zagonicb вне форума Ответить с цитированием
Старый 16.04.2016, 22:11   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,302
По умолчанию

Ферзь ходит по вертикали, горизонтали и двум диагоналям от своего положения. Вертикаль и горизонталь проверяются просто - должны совпадать соответствующие координаты. Если рассмотреть диагонали, проходящие через заданную точку (a, b), то можно заметить, что клетки, составляющие диагонали, имеют координаты вида (a+k, b+k), (a-k, b+k), (a-k, b-k), (a+k, b-k), где k - некое натуральное число. Теперь осталось только проверить данное свойство.
c - d == 0 означает, что у клетки (c, d) равны обе координаты, то есть она лежит на диагонали, проходящей через (1, 1). Это условие никак не связывает между собой клетки (a, b) и (c, d).
Думаю, у вас есть потенциал, раз вы стараетесь и хотите научиться.
По поводу короля: все клетки, которые бьет король, плотненько его окружают. Можно заметить, что их координаты отличаются максимум на единицу от короля. И тогда останется исключить только саму клетку с королем. Или вот другой путь - записать условия в лоб для короля:
Код:
a == c + 1 && b == d - 1 ||
a == c     && b == d - 1 ||
a == c - 1 && b == d - 1 ||
a == c + 1 && b == d     ||
a == c - 1 && b == d     ||
a == c + 1 && b == d + 1 ||
a == c     && b == d + 1 ||
a == c - 1 && b == d + 1
Заметить закономерность:
Код:
abs(a - c) <= 1 && b == d - 1 ||
abs(a - c) == 1 && b == d     ||
abs(a - c) <= 1 && b == d + 1
Код:
abs(a - c) <= 1 && abs(b - d) == 1 ||
abs(a - c) == 1 && b == d
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.04.2016 в 22:24.
BDA вне форума Ответить с цитированием
Старый 17.04.2016, 03:29   #13
zagonicb
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 14
По умолчанию

Вы так хорошо все разжевали очень полезно, я даже ось координат рисовал, что бы лучше усвоить вами сказанное, спасибо.
|| запинается на «правде», && запинается на «лжи».
zagonicb вне форума Ответить с цитированием
Старый 17.04.2016, 15:55   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,302
По умолчанию

Пожалуйста. Кстати, рисование помогает и при поиске решения. Порисовать, повыписывать какие-то случаи, чтобы увидеть закономерность, легче, чем пытаться всё представлять в голове.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi (Lazarus). Обход шахматной доски конём Ovenvan Помощь студентам 9 12.06.2015 16:35
Красивая реализация шахматной доски BestStrikS C# (си шарп) 5 05.06.2015 11:48
Создание своего класса в Delphi 7 - фигуры для шахматной доски electric Компоненты Delphi 18 24.10.2013 15:06
Обход шахматной доски конем wazaaaup Помощь студентам 1 04.07.2011 20:54
Пролог. Обход конем шахматной доски Gambler Помощь студентам 9 08.12.2010 22:19