Курсы по программированию

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

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Мат Конём и Слоном / Ворошиловский слон

  • На этом уроке мы напишем наконец-таки
    метод bool onBishop (byte x, byte y) и
    подсчитаем количество матовых позиций.
    А в конце урока блеснём использованием итератора :)

    Самостоятельное задание: придумать структуру
    для хранения найденных позиций и описать её в комментариях к отчёту.
  • Дата отправки отчёта: 4 июля 2016 г.
  • Задание выполнено: за 20 мин.
  • Что было сложным: Написать свою функцию для слона (не нравится мне ваш цикл)
  • Комментарии: • Не знаю, что такое каталог, но если нужно быстро и чтобы было под рукой, то SQLite - лучший выбор, как мне кажется. Как ни как СУБД, и там всё заточено под быструю обработку информации, и занимает всего один файл.
    • Написал функцию для слона без цикла, но она выдаёт 182. Хм, я всё пересмотрел, вроде правильно. Не знаете, где может быть ошибка? А то, мне моя функция на порядок больше нравится =)
  • Оценка видео-уроку:
Отчёт от 9567 за Мат Конём и Слоном / Ворошиловский слон




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Максим  # Мат Конём и Слоном / Ворошиловский слон / 2016-07-04 19:22

Я не разбирался глубоко, но если конь будет на линии слона, но с другой стороны?


10558. --
Иван Воронин
Иван Воронин
ответить
→  Максим  # Мат Конём и Слоном / Ворошиловский слон / 2016-07-07 00:05

эта функция бесполезна, если на поле появится ещё одна доп. фирура, ты для неё потом тоже будешь переменную создавать и доп. вычисления? по-моему удобнее вычислять координаты фигуры, которой хочешь двигаться, проверять путь её следования и если на пути попалась фигура, просто проверить, это враг или нет, если враг, бить можно, если нет, то нет, а вычислить все фигуры на поле это получится ОГРОМНАЯ функция в итоге
з.ы
это напомнило мне задание когдато на FoxPro писали, надо было вывести имя и фамилию с Заглавной буквы, кто-то написал фунцию, которая проверяла все слова которые ввесли и меняла первую на Заглавную, а остальные делала маленькими, а кто-то просто написал сразу как надо и якобы справился, а когда ввели врАзНОбоЙ, то у них так и вышло в итоге, потому что никаких проверок они не делали, функции надо писать с заделом на будущее, чтобы она все возможные подводные камни учитывала, поэтому без цикла будет громоздкая писанина


9567. --
Максим
Максим
ответить
→  Иван Воронин  # Мат Конём и Слоном / Ворошиловский слон / 2016-07-07 00:11

Хм, действительно.. Я как-то даже не подумал, что просматриваю все фигуры на поле. Эх, ещё учиться и учиться =)



Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Писать функцию OnBishop
Трудности: Написать функцию onBishop
Для храненения может SQLite использовать, имхо там всё заточено под хранение и быстрый доступ и файл один.


Научился: Услышал о законе де моргана, соответственно пошел, загуглил и развился так сказать)) Извините за выражение, но для меня алгоритм оказался оч хитрожопым) фиг бы я до такого додумался, но теперь буду знать о новых фишках.
Трудности: Алгоритм на понимания оказался не совсем простой. Понять понял, а вот использовать в дальнейшем в практике.. тут Думаю нужен опыт
Поставил урок на паузу, написал такой индусо-код. Т.е. я проверяю равна ли сумма координат бишопа сумме других фигур. Вариантов получилось меньше чем на видео, (231 < 170). Может кто объяснить почему комбинаций получилось меньше? if (wbx + wby == wkx + wky || wbx - wby == wkx - wky) return false; if (wbx + wby == wnx + wny || wbx - wby == wnx - wny) return false;