Рубрика «логические игры» - 12

Крестики-нолики… в них играли все, я уверен. Игра притягательна своей простотой, особенно когда ты тянешь часы где-нибудь на уроке, паре, а под рукой нет ничего, кроме тетрадного листа и простого карандаша. Уж не знаю, кто первым когда-то догадался рисовать кресты и кружки в 9 квадратах, но с тех пор игра нисколько не потеряла в востребованности, тем более, что народ придумал огромное множество её вариаций.

Крестики нолики «Без границ» - 1

Эта статья про процесс разработки ИИ на javascript для игры в одну из таких вариаций крестиков-ноликов: получилось довольно много материала, но я разбавил его анимацией и картинками. В любом случае, хотя бы стоит попробовать поиграть в это.
Отличия этого варианта игры от оригинала в следующем:

  1. Поле может быть сколь угодно большим (На сколько хватит тетради)
  2. Побеждает тот, кто поставит 5 фигур (если их можно так назвать) в ряд.

Все просто… и в то же время сложно: исход игры не может быть просчитан заранее, как в классическом аналоге. Этот «маленький проектик» отнял у меня много времени и нервов. Надеюсь, что вам будет интересно.Читать полностью »

Путешественники, привет.
Если вы это читаете предлагаю продолжение того "занимательного" материала, который я писал перед этим. Если вы немного проследили за мыслью, которая изветвилась в три статьи, а основной то посыл — был, только в том, чтобы показать интерес к декларативному подходу. Он почему то не велик, как будто эСКюэЛ не стал общедоступным и обязательным, ведь без него невозможно подумать, а как можно обработать данные иначе. Правда, ведь лучше сформулировать задачу и не заботиться о том, во что это воплощается.
Перейдем к делу, я перед этим писал про попытки вас повеселить, так что продолжу показывать пример использования пролога, хоть предыдущие статьи и показали, что интерес к питону и даже го, вызовет заинтересованность сразу на пару тысяч человек, что интерес к новости про новую батарейку к Тесле, вызывает стотысч просмотров, а для написания программ, на самом разработничестском портале не так, немногие, замеченные за этим поведением, отметились о прочтении в комментариях, и возможно пятёрка из них, после второго прочтения этого предложения еще заморочится мыслью, что стоит это читать далее…
Получилось, гипотеза заинтересовать не выполняется, и тогда просто покажу, как можно использовать пролог, это инструмент современный, развивающийся, и свободно распространяющийся, его можно брать и формулировать, только вот, что бы такое можно было бы сформулировать, чтобы увидеть преимущество.
Скажу, что путешествий во времени и не существует, но отправимся на неделю назад, там в ленте проскакивал Занимательный Пролог о трех частях, вот именно там была затронута тема решения случайно попавшейся новой задачи, я беру этот интересный сайт, и самое сложное задание (только не превращения строки в число) ), попробую сделать в Прологе.
Хватит вызывать заинтересованность, начинаю...

Читать полностью »

Привет, сообщество разработчиков, надо довести дело до конца.

В предыдущем моем опусе был вызов показать как можно использовать язык Пролог, да и показать что бы это было забавно. Превратить это в упражнение.

Попробую продолжить выпендриваться демонстрировать.

Коротко напомню задачу:

Wildcard Matching

Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?' and ''.
'?' Matches any single character.
'
' Matches any sequence of characters (including the empty sequence).
The matching should cover the entire input string (not partial).

Доказать полноту решения не удалось. На сайте, который предоставляет задание есть 1808 тестов, которые сразу увидеть нельзя, нужно написать программу и получить как ошибку очередной тест.

Хардкорно я получил от него 66 и проверил свое решение — пока все работало. Но не может быть все так просто.

Зачем было делать так много тестов, хочу проверить дальше...

Попробую переписать данное решение на языке понятном доступном в этой системе (они отражают популярность языков программирования современности).

Итак, выбираю Питон.

Читать полностью »

Привет, жители, пришло время поговорить про декларативное программирование. Это когда вам в институте втирали, что программы можно не кодить, а формулировать. Это противоположность императивности, которая сейчас во всех языках программирования. Отдадим должное функциональному подходу, он тут братский, и дело свое делает все глубже проникая в современность, вот вам и лямбды в си++ и яваскрипты, может хаскел?

Но грустнее дело обстоит с логическим, продукционным программированием, которое можно представить только на Prolog.

Вот собираюсь подкинуть интересную мыслишку для хабр-эффекта. Почему бы не написать статью про решение программистской задачки. Так, думаю, много постов и получилось. Присоединяюсь к выбору темы. Вот оригинальное, новое направление развития и соревнования между участниками, показываем, как именно мы можем решать задачи, так чтобы всем читающим было интересно выразить свое мнение, и указать на твои ошибки, потому как в яваскрипт и си++ у вас тут спецов достаточно, может питонознавы еще попадаются...

Итого цель статьи: решить во время написания статьи задачу, которая была еще не известна на начало поста и показать свой код мысли, подтвердив это ходом и полученным рабочим решением. Но для этой проверки нужен арбитр, сам себя не рецензируешь-то. Выберу в этой роли leetcode.com.

1. Итак

Тут выбираем ближайшее к самым сложным задание, и пытаемся его решить на Prolog, необходимо продемонстрировать насколько он занимателен.

2. Задача 44. Wildcard Matching

Читать полностью »

Преамбулка

Эта статья является анализом другой статьи: Если вы не нанимаете джунов, то не заслуживаете сеньоров

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

Я оставил по возможности оригинальное оформление, а свои комментарии отметил отдельно.

Ну и желтый заголовок тоже оставил, немного видоизменив.

Поехали.

Читать полностью »

Здравствуйте.

Хочу поделиться своей историей знакомства с игровой платформой Gameduino 3, а также немного расскажу о программировании простейшей логической игры под данную платформу, используемой совместно с Arduino Uno.

Что же такое Gameduino 3? Gameduino 3 — это плата расширения, которая позволяет превратить Arduino в современную карманную (имеется в виду размер) игровую консоль. К моему удивлению, мне не удалось найти на хабре какой-либо подробной информации о данной плате. Хотел бы восполнить этот пробел, тем более что плата, на мой взгляд, заслуживает внимания.

Немного истории

Автором проекта под названием Gameduino является Джеймс Боуман (James Bowman), который в 2011 году создал первую версию платы. Тогда она позиционировалась как модуль VGA для Arduino. Плата называлась Gameduino и была выполнена на основе программируемой логической матрицы FPGA компании Xilinx семейства Spartan-3A. На плате были установлены разъемы для подключения VGA монитора и стерео акустики.image
Читать полностью »

Настолка для обучению основам электрических цепей. Почему бы и нет!? - 1

Ранее я уже писал, как делал "электрический" конструктор из… картона. Увы проект пока так и остается на стадии прототипа, не перерастая в промышленный "физический" вид и ждет своего времени (и инвестора).

Но я решил пойти дальше — раз уж начали делать из картона, доведем ситуацию до ее логического завершения — сделаем полностью картонную настольную игру, но с электрическим сеттингом и обучающим эффектом. Вариантов было много — начиная от простой "ходилки" и заканчивая амитрешем с зомби с движением электронов и злобными короткими замыканиями и вздувшимися конденсаторами.

Читать полностью »

ИИ сам научился собирать кубик Рубика - 1

Компьютерные программы уже давно умеют играть в шахматы, относительно недавно специализированную платформу от Deep Mind даже обучили профессионально играть в го. Настолько профессионально, что игроков среди людей, равных компьютеру, сейчас нет, и скорее всего, не будет.

На днях стало известно, что машина самостоятельно научилась решать еще одну сложную головоломку — кубик Рубика. Причем при обучении ей не демонстрировали, как правильно собирать кубик, программная платформа, созданная учеными из США, всему научилась самостоятельно. Некоторые специалисты считают, что перед машинами пал еще один «бастион, считавшийся владением человека».
Читать полностью »

Изучаем коня (часть 4) - 1

Продолжаем изучать шахматные фигуры вместе с ребенком. Теперь наступает очередь коня.

В силу окончания учебного года, произошла некоторая задержка и разрыв между ферзем и конем. С учетом того, что конь – самая сложная фигура в шахматах для изучения, материал готовился несколько дольше, чем обычно. Но вот он и вышел. Все диаграммы с разъяснениями под катом – милости прошу.
Читать полностью »

Статья с разбором игры известной торговой сети вызвала у нас в Cloud4Y живой интерес. Вот небольшие отрывки, чтобы ввести вас в курс дела:

Однажды, солнечным весенним утром, почитывая городской форум, я наткнулся на ссылку с простенькой игрой от известной торговой сети. Игра (акция), посвящённая чемпионату мира по футболу, представляла собой незамысловатое поле три на три, заполненное футбольными мячами. Кликая по мячу, мы открывали картинку с тем или иным товаром. При открытии трёх одинаковых картинок участнику гарантировалось бесплатное получение данного товара в одном из магазинов сети. Также под одним из мячей имелось изображение красной карточки, открытие которой означало конец игры.

Рассчитываем вероятности для статьи «Нечестная игра, или как нас обманывают организаторы розыгрышей» - 1

Автор статьи принялся расследовать причины своего проигрыша и по результатам расчетов выяснил следующее:

Быстрый набросок формул на салфетке, и выяснилось, что вероятность выигрыша — 1/4. Для 5 полей пришлось повозиться, но расчётная вероятность получилась также 25%.
...
Запустив скрипт, я получил неожиданный результат — 25% выигрышей. Поиграв с количеством выигрышных элементов и общим количеством полей, я выяснил, что вероятность выигрыша в подобной игре не зависит от количества полей и равна единице, поделенной на количество выигрышных элементов, увеличенных на единицу.

Нас заинтересовала правильность такого расчета и, заменив салфетку на Excel, мы взялись за дело в поисках математической истины. Читателей, увлекающихся теорией вероятности, приглашаем под кат, дабы проверить правильность наших вычислений.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js