Как стать автором
Поиск
Написать публикацию
Обновить
11.76

Логические игры

Развиваем логику

Сначала показывать
Период
Уровень сложности

Задача про две ёмкости для жидкости

Время на прочтение9 мин
Количество просмотров11K

Существует классическая задача:

Есть 2 емкости: 5 литров и 3 литра. Как отмерить 4 литра жидкости используя только эти 2 емкости?

В этом тексте я решу эту задачу в общем виде при помощи конечного автомата.  Также я упомяну про малоизвестный язык программирования Dot.

Читать далее

Го: Дообучаем модель

Время на прочтение6 мин
Количество просмотров2.5K
What will we do with a drunken sailor,
What will we do with a drunken sailor,
What will we do with a drunken sailor,
Early in the morning?

Drunken Sailor


В прошлый раз мы остановились на том, что модели на основе свёрточных нейросетей, вполне способны подсказывать интересные и неочевидные ходы и, таким образом, могут использоваться как основа для построения бота для игры Го. Напомню, что источником модели послужила вот эта замечательная книга. Для того чтобы двигаться дальше: дообучать модель, просто с ней экспериментировать или вообще полностью переделать и обучить с нуля, требовались вычислительные ресурсы. И они появились…
Читать дальше →

Латинский квадрат: вызываем демонов во имя математики

Время на прочтение7 мин
Количество просмотров12K

Привет, Хабр, я Олег, преподаватель Elbrus Bootcamp. Возможно, вы слышали о латинских квадратах. Раньше считали, что они защищают от зла и помогают в магических ритуалах, а теперь их используют в криптографии и играх. Но, несмотря на многовековую историю, генерация таких квадратов — все еще проблема.

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

Решил исправить ситуацию: в этой статье расскажу об алгоритмах генерации и их ограничениях, и покажу, как реализовал один из алгоритмов на JavaScript с классной визуализацией. А еще объясню, почему магический и латинский квадрат — не одно и то же.

Вызвать демона

Шифр, который разгадал только один программист из всей компании. А вы сможете?

Время на прочтение2 мин
Количество просмотров20K

На разные праздники мы дарим технической команде iSpring Tech подарки. Чаще всего это были книги. Потом переключились на командные футболки. Первый дизайн был с разными космическими кораблями из Звездных войн. И вот перед очередным праздником — это был Новый год — мы вновь задумались о подарках. Решили снова сделать футболки — но не простые, а особенные, чтобы прям для технарей…

Многие наши разработчики любят сложные задачи, ребусы, логические задания и квесты. Так родилась идея сделать футболку-загадку: придумали шифр из пяти уровней и загадали в нём забавные фразы, которые часто употребляют программисты. Основная задача при шифровке была преобразовать текст в картинку, чтобы картинка получилась визуально интересная. 

Мы решили поделиться этой задачкой со всем Хабром. За правильный ответ — приз: отправим победителям футболку с принтом-шифром, как на картинке, и сувенирный набор Марий Эл (в нём — бальзам «Огни Марий Эл», тушенка с мясом из лося, чай, грибы, магнит, открытки, сумка). Победители получат призы как раз к Новому году :)

Читать далее

История поиска длиной в 15 лет

Время на прочтение10 мин
Количество просмотров16K

Мы нашли все самые крутые логические задачи!

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

Так появилось сообщество решателей задач BrainGames.ru. Наш сайт развивался и менялся, сменялись решающие, сменялись проверяющие, но вот уже много лет мы не изменяем трем основным принципам: 

Мы не даем ответов. Ответ узнать можно, но только найдя его самостоятельно и услышав “верно” от модератора (так мы называем проверяющих задачи).

Задачи проходят жесткий отбор и переработку. 

Присоединиться к сообществу и проверить ответ смогут только те, кто решит несколько “регистрационных” задач - простых, но нестандартных. 

Как так получилось?

Взламываем Ball Sort Puzzle

Время на прочтение8 мин
Количество просмотров18K

Ball Sort Puzzle — это популярная мобильная игра на IOS/Android. Суть её заключается в перестановке шариков до тех пор, пока в колбах не будут шарики одного цвета. При этом шарик можно перетаскивать либо в пустую колбу, либо на такой же шарик.

Так случилось, что я в неё залип. Очнулся примерно через месяц, на 725 уровне. Он мне никак не давался — насколько бы глубоко я ни пытался продумать свою стратегию. В итоге — с этим вопросом я вышел в интернет, и заодно выяснил несколько интересных особенностей головоломки.

Во-первых, — игра бесконечна почти бесконечна. По крайней мере уже сейчас на YouTube есть прохождения всех уровней в плоть до 5350, а в телеграмме гуляют скриншоты 10к+ уровней. Вторая особенность, и вот это уже некрасиво, — не у всех уровней есть решение.

Ну это ни в какие ворота — против нас играет коварный ИИ. Нужно действовать соответственно!

Под катом мы:

• Придумаем алгоритм, решающий эту головоломку (Python)

• Научимся парсить скриншот игры, чтобы скармливать алгоритму задачки (OpenCV)

• Напишем телеграм бота, который будет принимать скриншоты и возвращать решения

• Выстроим CI/CD через GitHub Actions и задеплоим бота на Яндекс.Функции

Погнали!

Анонс онлайн-квиза для айтишников: первое название Гугла, байки из Кремниевой Долины и проблемы високосной секунды

Время на прочтение2 мин
Количество просмотров2.9K

image


Привет, Хабр! Карантин затянулся: мы давно обустроили домашнее рабочее место, научились эффективно заниматься делами на удалёнке, поучаствовали в нескольких онлайн-митапах и, может, даже прошли пару обучающих курсов. Пора отвлечься, размять извилины и посоревноваться друг с другом в логике и сообразительности.


В эту пятницу, 15 мая, мы впервые проведём Техноквиз — онлайн-игру в стиле известных барных викторин. Читайте правила, собирайте команду и скорее регистрируйтесь!

Давайте подробности!

О роли тестовых заданий в жизни разработчика

Время на прочтение5 мин
Количество просмотров6.7K

Сколько технических интервью было у вас в жизни?


За последние пять лет я побывал на 35 технических интервью всех вообразимых видов и специфик — от казахстанских стартапов по коллективной закупке мяса на зиму до немецких и американских финтех-сервисов и банков; с уклонами в программирование, деливери и управление; удаленных и в офисе; ограниченных и неограниченных по времени; стрессовых и расслабленных, на разных языках.

Это, вкупе с ~20 собеседованиями, которые я провел сам в качестве нанимателя — достаточное число, чтобы стать королем собеседований сделать следующее наблюдение (изначально совершенно неочевидное) и утвердиться в нем: я убежден, что во многом благодаря такому количеству собеседований, начинающему походить на маргинальную привычку, я изучил свой стэк на профессиональном уровне и стал конкурентоспособным специалистом при том, что до этого уже работал 10 лет в веб-разработке.
Читать дальше →

Побеждая «математическое чудище»: дело не в числах, а в том, чтобы учиться думать

Время на прочтение8 мин
Количество просмотров25K
Недавно по сети пробежал твит, содержание которого было следующим: в одной из кулинарий Питтсбурга появилась загадочная табличка со следующим обращением к посетителям: «Пожалуйста, откажитесь от обсуждения математики в очереди к кассе».

image

Жители Питтсбурга не смогли найти нашумевший магазин, потому что на самом деле он находится в Коннектикуте. Впрочем, это не помешало юмористам принять новость за чистую монету и поверить, что это настоящая табличка, якобы действительно помещенная в заведении кассиром, которому надоело, что какие-то всезнайки спорят с ним по поводу итоговой суммы. А так все и было?

На самом деле нет, ничего подобного (в качестве подтверждения можете почитать про эту историю). Но в целом это объяснение вполне правдоподобно. Кассиры в наши дни не умеют делать расчеты в уме, не так ли?

С другой стороны, кто вообще сегодня умеет считать? Математика слишком сложна. Только те, кто работает с числами умеют производить вычисления в уме.

Это утверждение, опять же, неверно. Неверно, но популярно? Что ж, вполне может быть.
Читать дальше →

AlphaGo сыграет в го с чемпионом из Китая Кэ Цзе

Время на прочтение4 мин
Количество просмотров9.8K
Сможет ли человек победить искусственный интеллект в го на этот раз?


Будет ли Кэ Цзе выглядеть таким же довольным после игры с компьютером?

В марте этого года один из лучших игроков мира в го Ли Седоль провел несколько игр с AlphaGo, системой компьютерного го. Эта система состоит, грубо говоря, из комбинации метода Монте-Карло и нейросетей политики (policy networks) и ценности (value networks). Для того, чтобы выйти на текущий уровень мастерства, AlphaGo играла в го сотни тысяч раз (речь идет примерно о 160 тысячах уже сыгранных партий). Сами партии брались с сервера KGS, где играют мастера от шестого до девятого дана. Система самообучалась, причем во многом — благодаря оригинальной системе обучения с подкреплением. Первая сеть политики играла с людьми, вторая — играла с первой, оптимизируя ее. Это делалось для того, чтобы система стремилась выиграть, а не просто предсказывать ходы. И такая система вполне себя оправдала.

Дело в том, что го — это игра с огромным числом возможных позиций камней на стандартной доске. Таких позиций примерно в гугол (10100) раз больше, чем в шахматах. Это даже больше, чем число атомов во всей Вселенной. Именно поэтому го считалась игрой, обучить которой искусственный интеллект очень сложно, если вообще возможно. Но, как видим, вполне возможно. А на первый взгляд все очень просто = на доске 19*19 линий игроки располагают камни двух цветов, и начинают попытки занять камнями своего цвета площадь больше, чем соперник. Надо сказать, что до AlphaGo были и другие программы — но они играли на уровне любителя, а не мастера, тем более, 9 дана. Но AlphaGo удалось победить чемпиона Европы, а также одного из пяти сильнейших игроков мира Ли Седоля.
Читать дальше →

Манкала — время разбрасывать камни

Время на прочтение10 мин
Количество просмотров18K
Всему свой час, и время всякому делу под небесами…
Время разбрасывать камни и время складывать камни,
Время обнимать и время избегать объятий,
Время отыскивать и время дать потеряться,
Время хранить и время тратить…

"Книга Экклезиаста"
 

Если проводить аналогию с эволюцией животного мира, игры семейства Манкалы представляют из себя динозавров. Они царили на планете, когда Шахмат не было даже в проекте! Очень сложно установить их возраст, поскольку, зачастую, для игры не требуется каких либо особенных материальных артефактов. Достаточно выкопать ямки в земле да взять горсть камушков. В отличии от динозавров, Манкала, в добром здравии, дожила до наших дней, сохранив всё своё удивительное многообразие. Добро пожаловать в «Парк юрского периода» настольных игр.
Читать дальше →

На мультик о любви роботов ушло 1296 кубиков Рубика

Время на прочтение1 мин
Количество просмотров8.7K


Кубик Рубика — игрушка на все времена, его популярность держится примерно на одном уровне много лет. Серьезные разработчики создают алгоритмы для роботов, которые собирают кубик за несколько секунд. По кубику Рубика проводятся чемпионаты. Сейчас существует огромное количество разновидностей этой головоломки.

На днях в Сети появилось анимационное видео, ролик о любви роботов. Само видео могло бы показаться очень простым, если бы не способ его создания: каждый пиксель — это отдельная часть кубика Рубика. Всего на создание мультика ушло 1296 этих игрушек, каждую из которых складывали таким образом, чтобы она коррелировала с соседними элементами, создавая анимационную последовательность.
Читать дальше →

Как LLM решают вопросы в духе “Что? Где? Когда?” — эксперимент и выводы

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5K

Провёл эксперимент: дал современным языковым моделям логические вопросы в духе «Что? Где? Когда?». В статье — наблюдения, примеры ответов, сравнительный анализ и советы как использовать LLM при создании своих вопросов.

Читать далее

Ближайшие события

Звездолёты и Драконы

Время на прочтение18 мин
Количество просмотров3.5K

В свете некоторого разбора Olden Era, подумал над концептом игры в похожем жанре - с геймплеем примерно в стиле симбиоза-микса Heroes 3 c Disciples 2, но что-то такое, более простое в разработке. И тут можно было бы уйти в некий фэнтэзийный "космос", где вместо героев у нас были бы звездолёты, а вместо замков - планеты.

Читать далее

Человек против ИИ в играх: история противостояния

Время на прочтение7 мин
Количество просмотров3.7K

Такие игры, как шашки, шахматы, го, представляют собой сложные задачи, требующие высокого интеллектуального уровня. Разработка ИИ, способного с ними справиться, помогает исследователям понять принципы принятия решений, поиска оптимальных стратегий. Они могут обучать на играх нейросети, чтобы затем использовать их для решения других задач с неполной информацией – как, например, помощь врачу с постановкой диагноза.

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

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

Читать далее

Как собрать кубик Рубика изнутри

Время на прочтение5 мин
Количество просмотров3.8K

Представьте: вы находитесь в комнате, у которой стены, пол и потолок это стороны головоломки. Стены вращаются, пол и потолок тоже. Теперь не кубик крутится в ваших руках, а вы - внутри кубика Рубика.

Чтобы воспроизвести эту необычную ситуацию я написал небольшое приложение. С помощью приложения расскажу, как собрать кубик Рубика изнутри.

Читать далее

8 игр для школьников, которые научат текстовому программированию

Время на прочтение5 мин
Количество просмотров20K

Хабр, привет! Сегодня хочу поделиться подборкой игр для детей и подростков, обучающих текстовому программированию. Научиться программировать можно самостоятельно, нужна только усидчивость и интерес к IT. 

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

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

Читать далее

Путеводитель разработчика по Garbo-боту

Время на прочтение10 мин
Количество просмотров1.3K
у него есть два больших преимущества

Во-первых, он дешевле; а во-вторых, на обложке у него большими веселыми буквами напечатан дружеский совет: Don’t panic!

Дуглас Адамс


Из всего многообразия шахматных движков, Garbochess я выбрал по двум причинам: для него есть понятный JavaScript-код и он неплохо играет в Шахматы. Мне совсем не требовался гроссмейстерский уровень! Если бот играет слишком сильно, то обычных людей (вроде меня) это только отпугивает. Требовалась лишь игра достаточно разумная, похожая на игру человека, без глупых раздражающих ошибок и Garbochess мне всё это дал. К сожалению, как и большинство других шахматных движков, он играл только в одну игру — традиционные Шахматы. Именно это мне и предстояло исправить.
Читать дальше →

Интерактивная виртуальная игра как форма обучения школьников

Время на прочтение7 мин
Количество просмотров6K

Стоит ли запрещать детям доступ в Интернет? Такой вопрос рано или поздно задают все современные родители, и на него уже можно четко ответить — нет. По одной простой причине, что Интернет везде. И гораздо оптимальнее будет использовать его для обучения ребенка. Конечно, придется контролировать и быть в курсе того, какой контент потребляет юный неокрепший мозг. К примеру, этой осенью моя дочь пойдет в первый класс. Для сравнения, я не помню, чтобы в первом классе задавался, как моя дочь, такими вопросами, как «Есть ли в нашем городе мусороперерабатывающий завод?», «Когда человек сможет жить на Марсе?», «Все ли косточки динозавров выкопаны?». Современные дети более любознательные, и это благодаря Интернету. Очень важно сохранить эту любознательность, когда ребенок пойдет в школу. Ведь ребенку может показаться, что в школах скучнее рассказывают о чем-либо, чем в «Фиксиках» или «Гравити-Фоллз». Учителя и лекторы могут показаться менее харизматичными и выразительными, чем, скажем так, научпоп блогеры. А в какой-то момент, ребенок просто сделает вывод, что знаний в Интернете больше и лучше, а в школу идти вовсе необязательно. Именно так было с большинством детей младших и средних классов, которые были вынуждены учиться на удаленке во время пандемии. Они отказывались идти в школу, когда учебный процесс возобновили. Это наглядно показало, что образовательная система нуждается в реформах, что необходимо интегрировать Интернет в процесс обучения, и уж тем более, не противится и запрещать его. Сделать это будет не так просто и не так быстро! Нужны время и деньги, особенно нужны специалисты для разработки баз данных и электронных ресурсов. В то время, когда Facebook создает Instagram для детей младше 13 лет, предлагаю ознакомиться с примерами электронных образовательных ресурсов, которые могут быть полезными для детей всех возрастов, и такими же интересными для них как Майнкрафт, Among Us и YouTube Kids.
Читать дальше →

Решаем мини-игру про взлом протокола в Cyberpunk 2077 за 50 строк на Python

Время на прочтение6 мин
Количество просмотров8.9K
image

Если вы хотя бы отдалённо интересуетесь играми и не прожили последнюю пару лет в тайге, то, вероятно, слышали что-нибудь о Cyberpunk 2077. После долгого ожидания она наконец вышла! И в ней есть мини-игра про взлом! И чем больше получишь в ней очков, тем ценнее приз! Может ли магия Python дать нам преимущество в этом жестоком Нете? Разумеется.

Краткое описание мини-игры: игроку даётся квадратная матрица и одна или несколько последовательностей шестнадцатеричных чисел, а также буфер определённой длины. Цель игрока — завершить наибольшее количество последовательностей, выбирая столько узлов, сколько позволяет буфер. Каждая последовательность заполняется значением, если выбранный узел является следующим узлом последовательности. В начале игры можно выбрать любое из значений в первой строке матрицы. После этого в каждом ходе можно попеременно выбирать N-ный столбец/строку, где N — индекс последнего выбранного значения. Если это ужасное описание вам не помогло, то более подробное можно прочитать здесь.
Читать дальше →

Вклад авторов