Было очень интересно узнать, как взаимодействовать с картинками в Python, что бы создавать какие-либо игры. Спросил у DeepSeek и под его руководством, добавил папку image в то же место, где и написан скрипт/код, а самим картинкам нужно было присвоить имена, которые будут прописаны в коде, достаточно по одной картинке каждой фигуры чёрных и белых. В коде может быть указан, как относительный путь, так и точный к папке image со слов DeepSeek. Пока шахматы получились на двоих, без игры с компьютером, но и это было не просто сделать, такому новичку, как я, который не учился на программиста. Первые коды игры, которые он писал, он не понимал, как должен ставиться шах/мат, с трудом получилось объяснить, помучился с правильным указанием пути к папке с картинками шахмат, а так же с размером фигур, что бы все попадали точно в клеточку и не вылезали за границу своей клетки.
Я работаю инженером-программистом: по сути, обслуживаю компьютерную технику - чищу коротроны в принтерах, меняю картриджи, перетаскиваю системные блоки, ныряю под столы сотрудников, настраиваю яркость мониторов, переустанавливаю ОС, разгружаю технику и т.п. Работаю так уже 10 лет (мне 30), получаю 60к в месяц.
Я обратился к своему карьерно-личностному консультанту Оксане с вопросом о том, смогу ли я стать выдающимся шахматистом (я только начал играть), а она сказала так: "Скорее всего, нет. Если ты не добился особо ничего карьерного, кроме работы простым эникейщиком подай-принеси, то вряд ли тебя хватит на серьёзные шахматные успехи. Чтобы выбиться в мастера спорта, надо быть в принципе более пробивным и сообразительным".
В связи с этим у меня вопрос к тебе, читатель: КАК шансы стать большим шахматистом зависят от должностных обязанностей?
В первой главе мы с вами узнали, как и где создавались первые "шахматные автоматы", которые были всего лишь имитаторами программируемых шахматных роботов. Сегодня знакомство с первыми настоящими шахматными алгоритмами и программами.
*** Глава 2. Как роботы научились играть в шахматы ***
Чтение советской и американской прессы 70-х годов прошлого XX-го века оставляет приятное послевкусие.
Конечно, нельзя было говорить о дружбе между СССР и США, но отношения явно улучшились по сравнению с послевоенными годами.
В американской прессе мелькают сообщения о смягчении давления американской бюрократии на Коммунистическую партию США. В частности, в 1973 году федеральный окружной суд в Аризоне постановил, что большая часть закона против американских коммунистов неконституционна, и Аризона должна допустить КП США к участию в голосовании на всеобщих выборах ("Блавис против Болина").
В советской прессе насмешки над убогим мещанским западным (в основном американским) образом жизни продолжались (в духе Михаила Задорнова "ну, тупые"). Но при этом явно начала изменяться эмоциональная окраска этих насмешек. Злая язвительная сатира потихоньку менялась на добродушный юмор с весёлыми приколами.
Вот мы читаем сообщение о нищем, который обитает на богатой парижской помойке. Ничего особо интересного в этом факте нет. Не было никакого секрета в том, что на этом Западе нищих огромное количество, как блох на бродячей собаке. Но именно в этом нищем была интересная изюминка. На своём плакате, ниже стандартного объявления "подайте плиз, кто сколько может жертве холокоста, бюрократии и бездушия", нищий сделал странную и наглую приписку "доллары США не принимаю".
Не знаю, придумал журналист эту хохму, или реально зафиксировал нечто подобное, но эта короткая заметка порождает у читателей множество мыслей, начиная от надежд, что долларовая долговая пирамида скоро рухнет до желания дать нищему полезный совет: "бери, дурачок, что дают, потом ненужное выбросишь".
Учёные экономисты по обе стороны океана начинают осторожно высказывать идеи о возможности "конвергенции" капитализма и социализма. При этом, в США должны усилиться социальные гарантии для трудящихся, а в СССР для "деловых людей" должны быть предоставлены возможности для полезных экономических частных инициатив (типа строительства личных дач и не только).
Самое главное, что в такой атмосфере о прямом военном конфликте не могло быть и речи. Решались вопросы о возможностях сотрудничества в разных областях.
В 1972 году в Москве председатель Совета министров СССР Алексей Косыгин и президент США Ричард Никсон подписывают "Соглашение о сотрудничестве в исследовании и использовании космического пространства в мирных целях". В 1975 году в рамках этого соглашения был реализован совместный полёт советского и американского пилотируемых космических кораблей со стыковкой на орбите (знаменитый проект "Союз - Аполлон").
Вот в таких условиях мирной конкуренции и делового сотрудничества СССР и США с явным желанием обеих сторон уйти от прямых военных столкновений в 1974 году состоялось грандиозное событие для всех любителей шахмат и прикладного программирования: первый в мире чемпионат мира среди шахматных программ.
Состоялось это мероприятие в Стокгольме во время конгресса ИФИП (IFIP, International Federation for Information Processing).
Лидерами в области шахматного программирования были американцы. В США было 50 действующих шахматных программ, во всем остальном мире (Европа + СССР) около 20. Также в США уже был богатый опыт проведения внутренних чемпионатов. Последний чемпионат США стал отборочным к первому чемпионату мира. Лучшими оказались программы: "Чесс-4.0", "Теч-2", "Хаос" и "Острич". Они и представляли США на этом турнире.
Что же касается нашей страны, то у нас в боевом режиме была единственная программа "Каисса" и ещё несколько программ в стадиях подготовки и перспективной разработки. Именно "Каисса" и представляла СССР на этом турнире. По итогам турнира "Каисса" заняла первое место и завоевала золотую медаль весом 110 грамм.
После окончания турнира "Каисса" в виде бонусного трека сыграла дополнительную товарищескую партию с лучшей американской программой "Чесс-4.0". После долгой и упорной борьбы партия завершилась вничью.
Насколько сильно играли лучшие компьютерные программы в 1974 году? Мне представляется, если бы они играли в сегодняшних (2025 год) турнирах для людей, например, на популярном шахматном сайте "ЛиЧесс", то изначально показывали бы рейтинг в диапазоне 1800-2000 в блице с контролем 5+0. Для сравнения сегодняшние лучшие гроссмейстеры показывают здесь рейтинги 3000+ или, как минимум, около того. А если бы обсчитывали рейтинги современных лучших компьютерных программ типа "Стокфиш" и "АльфаЗирро" при их играх с людьми, то мы увидели бы рейтинги 4000+ или даже 5000+. Короче, эти современные роботы били бы всех людей без малейших шансов для последних. Примечание. При условии взаимной честной игры, но это уже совсем другая тема.
После первого чемпионата разработчики упорно работали над усовершенствованием своих программ.
В 1977 году состоялся второй чемпионат мира среди компьютерных программ в канадском городе Торонто.
Наша "Каисса" приняла участие и в этом чемпионате. Уже в первом туре чемпионка преподнесла неожиданный сюрприз для всех, включая зрителей, своих разработчиков и присутствовавших на турнире гроссмейстеров и мастеров.
Позиция из партии: "Duchess" - "Каисса", Торонто, 1977. Тур: 1.
"Каисса" до этого игравшая неплохо в этой чуть лучшей позиции вдруг делает ряд странных ходов, начиная отсюда: 29. … а5?
30. g4 Фe6
31. Лc6 a4?
32. Ф:а4 Лd6
33. Л:d6 Ф:d6
34. Фа8+
Здесь все ожидали естественного хода 34. … Крg7
Здесь все ожидали естественного хода 34. … Крg7
Но "Каисса" вдруг ставит под бой ладью 34. … Лe8 и затем постепенно проигрывает без каких-либо шансов.
После партии, когда Каиссу спросили, в чем дело, она объяснила, что ход 34. ... Крg7 гораздо хуже, чем сделанный ею ход 34. ... Лe8.
В доказательство "Каисса" показала такой вариант:
34. ... Крg7 35.Фf8+! Крxf8 36. Сh6+ Сg7 37. Лc8+
"Каисса" демонстрирует вариант, которые не увидели даже гроссмейстеры
37. … Фd8 38. Л:d8+ Лe8 39. Л:e8X.
Специалисты, среди них были гроссмейстеры Ботвинник, Эдуард Ласкер, Ганс Берлинер, канадский международный мастер Леон Пиасетский эту комбинацию не обнаружили и объясняли народу этот заскок Каиссы "несовершенством шахматных программ".
В конечном результате турнира Каисса разделила 2—3 места с программой Duchess. Победила в чемпионате программа "Чесс-4.0".
До сих пор идут диспуты, а увидела бы программа Duchess во время партии этот выигрывающий ход 35.Фf8+
Далеко не факт, учитывая, ограниченность времени на обдумывание в турнирной партии.
В любом случае, если ход 34. ... Лe8 объективно сильнее (т.к. затягивал поражение на много ходов), то никто не будет спорить, что практических шансов больше у скромного хода 34. ... Крg7
Мне стало любопытно, а как бы в критической позиции пошла бы современная программа: 34. ... Лe8 или 34. ... Крg7 - ?
Я задал этот вопрос "Стокфишу" и получил ответ: 34. ... Лe8
Вот так!
Такие тонкие психологические моменты не понимали шахматные программы в 1977-м году, не понимают их они и сейчас, в 2025-м.
Возьмем этот факт на заметку, он нам пригодится для дальнейших рассуждений.
А как вообще роботы научились играть в шахматы? Точнее говоря, кто был их первым учителем?
Вообще говоря, много умнейших людей брались за эту интереснейшую проблему и решали её с разной степенью успеха.
Традиционно считается, что самым первым шахматным программистом в мире был Алан Тьюринг. В 1951 году он написал алгоритм Turochamp, с помощью которого машина могла бы играть в шахматы. Самое забавное, что это был чисто теоретический труд. У Алана не было компьютера, чтобы проверить свою программу на практике.
Тем не менее, его идеи были использованы другими учёными, а идеи тех, в свою очередь, новыми учёными, и вот, что мы имеем в сухом остатке.
Попробуем набросать примерный алгоритм игры в шахматы.
Что нам нужно сделать? Написать программу, которая умеет находить сильнейший ход в любой позиции.
Немного подумав, почитав разных полезных статей, становится ясно, что тут есть 2 принципиальных краеугольных камня.
Функция, которая оценивает позицию (оценочная функция).
Функция, которая как-то умеет определять максимальную глубину просмотра.
Давайте, попробуем набросать функцию, которая оценивает позицию.
Для простоты пока сделаем глубину просмотра равную одному полуходу и анализировать будем начальную позицию.
Примечание. Пусть будет 0.1 балл за одно свободное поле под атакой.
Премия за очередь хода. Пусть пока будет 0. Не уверен, что это вообще хорошая идея.
Проверку на мат проводим. Вообще, вряд ли кому-то будет мат в начальной позиции или после первого полухода. Но проверять надо.
Оценка позиции = Белые - Черные = (38.2+18)-(38.2+18) = 56.2-56.2 = 0
Теперь нам надо подобным образом оценить все позиции после всех возможных ходов.
Оценка позиции после 1-го хода белых
Ход Баллы
a3 0.0
a4 0.2
b3 0.2
b4 0.2
c3 0.2
c4 0.3
d3 0.6
d4 0.7
e3 0.9
e4 0.9
f3 0.0
f4 0.1
g3 0.2
g4 0.2
h3 0.0
h4 0.2
Кa3 0.1
Кc3 0.3
Кf3 0.3
Кh3 0.1
Получается следующий результат. Если применять данную оценочную функцию и использовать глубину расчета на 1 полуход, то в данной позиции получаются лучшие ходы: e3 или е4.
Теперь мы можем уточнить оценку начальной позиции. Если изначально она была равна 0, то после первого полухода стала равной 0.9.
Разумеется, если мы посмотрим чуть глубже (т.е. оценим все позиции после всех возможных 2-х полуходов), то оценка начальной позиции опять изменится. Наверное, она опять станет равной 0, например, после 1. e4 e6.
А если посмотреть немного глубже, хотя бы на 20 полуходов? Все это, конечно, можно сделать, посвятив этому процессу месяц или два, но это уже всё сделано до нас.
Очень люблю шахматы, постоянно гоняю десятиминутки на chess.com. Только зеваю часто, поэтому рейтинг завис на 1500 и дальше не идет. В Рождество было свободное время, я изучил как работать с бесплатным Stockfish и набросал простейшее приложение, которое читает позицию в браузере на chess.com, анализирует и подсказывает сильнейший ход.
Самому понравилось. Я запостил новость на хабре, с техническими подробностями, но реакция была вялая. Прошел месяц, я прикрутил поддержку lichess.org, сделал оценку всех ходов и допилил вменяемый интерфейс с изменяемой силой игры.
Программка делалась для собственного удовольствия, бесплатная и с исходниками, лежит на https://github.com/wmlabtx/chezzz. Для работы требуется Stockfish (там один .exe), ссылка указана. Качаем и кладем в ту же папку или в другое место, прописываем путь в app.config
Можно выбирать уровень игры относительно противника - поддаваться ему "красными" ходами, играть на равных "серыми" или выигрывать "зелеными". Можно играть самому, а пользоваться советником только в критической ситуации. На обеих сайтах поддерживаются все режимы - можно играть против ботов, людей, решать задачи и этюды.
Напоминаю, что играть таким образом против людей - читерство, да и спортивный интерес пропадает. Но если в целях обучения и против ботов - легко.
Говорят, что ни в коем случае нельзя озвучивать свои планы, надо держать их в секрете. А то господь Бог обязательно над этими планами посмеется и устроит какую-нибудь каверзу на пути к успеху. Я, однако, считаю, что это пустые суеверия. Бог не будет опускаться до такой мелкой работы, как строить препятствия обычному человеку. Впрочем, даже если и так, не буду упускать интересную возможность проверить эту версию на практике.
У шахматистов есть такое золотое правило: "лучше играть по плохому плану, чем вообще без плана". Почему бы не попробовать применить это правило к писательской деятельности?
Сказано - сделано. И вот перед вами примерный план моих творческих писательских работ на новый 2025 год. В течение года буду иногда в него поглядывать, а в конце года будет интересно сверить прекрасные мечты и суровую реальность.
*** Шахматы ***
Вот с шахмат, пожалуй, и начну набрасывать свои тезисы. Играть буду мало. В 2025 году хотелось бы сыграть всего лишь несколько партий, но сыграть так, чтобы они получились красивыми, и эта красота была доступна для широкого круга любителей. А потом сделать подробные обзоры в текстовом и видео форматах. Может, получится сыграть в каком-нибудь новогоднем турнире уже в начале года? И создать "жемчужину шахматного искусства"? Это было бы неплохо. Но торопиться не буду. Если не получится в ближайшие новогодние каникулы, то займусь шахматной игрой весной или летом. Как будет время и настроение.
Интересно было бы связаться с какой-нибудь шахматной стримершей и провести небольшой тематический шахматный матч. Примерно партий из десяти с контролем 5+0 или около того. Потом можно будет сделать обзор наиболее интересной партии, возможно, это будет интересно и поучительно.
Ранее я уже написал "Учебник шахматной игры для новичков". Он предназначен для тех, кто совсем не умеет играть в шахматы, но хотел бы научиться. Теперь у меня появилась идея сделать учебник шахмат для тех, кто уже умеет играть. Это будет учебник нового типа, его главной задачей будет сделать обучающегося умнее в общем смысле, а не только в плане улучшения навыков шахматной игры как таковой.
*** Компьютерные технологии ***
Я уже сделал ранее пару небольших бесплатных курсов для новичков: "Электронные таблицы Excel" и "Редактор текстов Word". Есть также небольшой урок для новичков с практическими примерами на JS.
В новом 2025 году планирую написать серьезный учебник для JS с отображением текущих современных реалий и попыткой предсказать, что ждет этот самый популярный язык программирования в будущем.
Что же касается серверных технологий, то планирую глубоко разобрать какой-нибудь популярный фреймворк на PHP с архитектурным шаблоном MVC (Model-View-Controller, Модель-Представление-Контроллер). Вероятно, это будет Laravel или Yii2. Хочу сделать эту новую книгу так, чтобы новичку было интересно погружаться в эту тему.
*** Дистанционная работа ***
Вообще, мой девиз для творчества будет такой: "больше произведений полезных, меньше развлекательных". Конечно, в идеале хотелось бы как-то совмещать пользу и развлечение, но, увы, во многих случаях это неподъемная задача.
Планирую написать несколько статей или книг с отображением текущих реалий взаимодействия работодателя и человека, ищущего работу. Конечно, тут под "работой" в основном следует понимать банальную прикладную разработку (программирование). Что испытал на себе, о том и буду вас информировать. Но я постараюсь также сделать некоторые общие выводы для всех профессий методом индукции (от частных случаев к общим выводам).
Думаю, что информация в этих статьях или книгах будет полезна для широкого круга читателей, слушателей, зрителей.
*** Мошенничество ***
О мошенниках я немного писал ранее, вы можете прочитать или перечитать такие опусы: "Мошенники: вчера, сегодня, завтра", "Развод скотины (новогодняя спектакля)", "Финансовый Централ".
В новом 2025 году тема также будет актуальной. Мошенники очень хитрые и коварные, все время придумывают новые схемы обмана. Обращаю внимание на пересечение тем "Дистанционная работа" и "Мошенничество". Одним из важных признаков, что "работодатель" является мошенником - отсутствие профессиональных требований к соискателю. Один из вариантов такой "работы" - работа дроппером. Схема простая. На банковскую карту нового работника поступают денежные средства из разных источников. Обычно, это обманутые физические лица. Далее "работник" перечисляет деньги "работодателю", часто через криптовалюту. Процент от таких операций и будет "заработной платой" нового доверчивого "сотрудника".
Осторожно! Это чистая уголовщина и откровенная подстава!
Ищите работодателей только по рекомендациям надежных знакомых или на солидных порталах поиска работы. Солидные порталы не работают с явным криминалом.
*** Фантастика спринт ***
Я люблю писать в стиле "фантастика на коротком поводке". Смысл такой. В журналистском стиле подробно описываются события, которые произойдут в ближайшем будущем (через месяц, год или два). Потом, когда подходит назначенный срок, интересно сравнить, насколько точно удались предсказания.
Вспоминаются такие истории.
"Русский разведчик в Киеве". События происходят летом 2023 года, а их подробное изложение сделано заранее, весной 2023 года.
"Внедряем робота президентом США 2024". Президента по факту выбрали в конце 2024 года. Но я весь процесс описал заранее, в начале 2024 года.
Планирую в таком стиле написать еще 1 или 2 опуса.
*** Человек или робот? ***
Проблема, которая "заострится" в ближайшем будущем, актуальна уже сегодня. Как отличить человека от робота? Например, вот этот текст, кто написал? Человек? А может нейросеть по запросу типа "Творческие планы писателя на 2025 год"?
Но это ладно. Как бы там не было, авторские права полностью мои. А представим себе ближайшее будущее, когда по городу шляются клоны людей, ПАКи (Программно-Аппаратные Комплексы). На вид этих клонов отличить от людей невозможно. У них живая мимика, они уверенно передвигаются пешком и управляют автомобилем. Они умеют логично и естественно отвечать на вопросы, а также вполне уместно эти вопросы задавать. Самые хитрые из них каким-то образом обзавелись человеческими паспортами. Проблему осложняет то, что некоторые клоны искренне считают себя людьми. А некоторые люди сошли с ума и считают себя роботами.
Единственное отличие человека от робота заключается в том, что у человека есть душа. А у робота ее нет. Но как определить, есть у конкретной сущности душа или нет? Хороший вопрос! И у меня есть на него четкий и однозначный ответ. Никак!
Интересное произведение по этой теме : "Год 2124. Убитый обвиняет". Тут фантастика на стайерскую дистанцию. Дано описание событий, которые произойдут через сто лет 22.07.2124, а описание сделано 22.07.2024. Чтобы узнать, насколько точно эти события описаны, осталось подождать девяносто девять с половиной лет.
*** Василий Пак и Ян Янов ***
Есть у меня парочка брендовых героев.
Василий Иванович Пак - этот тип живет уже сегодня. Шахматный бот в человеческой шкуре. Вполне нормально функционирует в автономном режиме, не вызывая особых подозрений у людей с которыми сталкивается. Себя называет иронически "нейросеть на двух ногах". Участник проектов "Первенство ветеранов России по шахматам" и "выборы президента США 2024". Практически не отличим от настоящего человека. Можно даже сказать, что он похож на настоящего человека больше, чем настоящий человек. Ибо, очень хитер и умеет мимикрировать во всех смыслах.
Ян Янович Янов - "космический волк", абсолютный рекордсмен по количеству дальних путешествий и по намотанным световым годам. В настоящее время пока еще не родился. С нетерпением ждем. В четверг 10.06.2224 года в музее "Космической Славы" будет лично проводить экскурсию и рассказывать о своих космических подвигах. Приходите, если будет время и желание. Будет интересно.
По обеим персонам планирую в 2025 году накатать по одной новой истории.
*** Соблазнение "бояркой" ***
Успешные в коммерческом плане писатели искренне советуют мне не заниматься всякой фигней, которую я описал выше, а заняться настоящим, серьезным делом, а именно, написать "боярку".
Что это такое? Я сам толком не знаю, а из прочитанных мною текстов, я понимаю так, что это такой модный литературный жанр. Действие происходит обычно в России (но не обязательно), при феодальном режиме (вероятно). Главный герой обладает волшебными свойствами (вот это обязательно), является хамом и циником, беспощадно убивая врагов разными способами. Но в душе он является добрейшим человеком, спасая по ходу произведения множество котиков и женщин.
Почему бы не попробовать?
На пробу я накатал несколько строк вот в таком духе.
- Кто такой и чьих будешь?
- Я - слуга князя Святослава, у меня послание для тебя, - ответил всадник и протянул кагану берестяную грамоту.
Каган быстро прочитал короткий текст: "Дорогой мой милый еврейский друг, каган лучшего в мире Хазарского каганата. Иду на Вы! С наилучшими пожеланиями, искренне Ваш князь Святослав". Каган раздраженно бросил грамоту в огонь и задумчиво молвил:
- Твой князь с катушек съехал. Ему пора обратиться к психотерапевту. Сколько он таких грамот послал в этом году?
- Эта десятая! - гордо заявил посланник, - статистика хорошая. Девять побед и ни одного поражения!
- А какая статистика по почтальонам? - поинтересовался каган.
- Тут сложнее, - грустно вздохнул посланник, - повесили троих, троих утопили. Двоих женили на своих женщинах. И только одному удалось спастись. Отпустили его. Пожалели. Кстати, это был я. Теперь дрожу и надеюсь, может, опять повезет?
- Увы! Не могу тебя обнадежить, - развел руками каган, - снаряд два раза в одну воронку не попадает.
Ну и далее все в таком духе.
Вам понравилось? Сообщайте. Если вам понравился этот кусок, то накатаю на пробу полное произведение килобайт на двести или даже на триста.
Но все эти "боярки", "псевдо-боярки", пародии на "боярки" по остаточному принципу. Если вдруг в голову ударит изнутри какое-нибудь вещество или снаружи на голову упадет какой-нибудь кирпич. Короче, по ситуации.
Вот и все мои творческие планы на 2025 год.
А у вас какие планы? Сообщайте, очень любопытно узнать.