Pull to refresh

Comments 67

Ух, такому исходнику позавидуют даже самые изощренные адепты perl-а.
Я думал, что Perl — это единственный язык, который выглядит одинаково до и после обфускации. Однако, нет :\
Все хорошо, только вот пешки могут идти назад. Т.е. в случае стоящей пешки на e4 возможен ход e4 e3.
Я не делал контроля за ходом человека.
и вот тут мне поперло (с)
А по теме, сильно конечно
Чего????? O_o
Пешка? Назад? ФИДЕ поменяла правила?
Из «нестандартных ходов» в современных шахматах встречаются:
1) Рокировка (короткая и длинная) — плюс надо отслеживать соблюдение условий рокировки.
2) Первый ход пешки — на одну или на две клетки.
3) Вытекает из второго — «взятие на проходе» (en passant).
4) Превращение пешки на последней горизонтали в любую фигуру, кроме короля (в том числе и ещё имеющуюся на доске — т.е. второй ферзь официально разрешён).

P.S. Понял — Вы имели в виду, что игра как раз даёт возможность сделать запрещённый ход.
«а игру я писал примерно две недели, правда с гигантскими перерывами» — вы только что очень сильно занизили мою самооценку.
Буквально месяц назад подумывал написать игру на sed'e, но руки так и не дошли.

Но это что-то космическое, снимаю шляпу.

Я, кстати, записал небольшой фрагмент игры в демонстрационных целях, можете вставить в топик вместо видео, или записать свое: ascii.io/a/5088
А там моноширинного нет, а то все клетки сползли :)
Запишите из своей консоли, будет выглядеть почти так, как у вас (только там небольшие проблемы с русскими буквами).
Кстати, а на брейнфаке шахматы уже писал кто-нибудь?
Почему-то компьютер не закрылся от шаха ферзём, а просто подвинул своего ферзя. За что и был сурово съеден.
Оценка глубиной на один ход, он просто не смог просчитать эту ситуацию :)
Я чуть ниже ссылку разместил — мне кажется что вот это как раз и есть один ход ).
Не-не, имеется ввиду, что он перебирает свои ходы и смотрит какой лучше, но дальше не перебирает оценки соперника (это уже глубина 2).
Ааа, понятно. прошу прощения, неправильно понял. Думал он хотя бы шахи-то фиксирует. Хотя сеперь я понял, что это та же валидация хода человека.
Вообще, добавить оценку на второй шаг не так уж и сложно, там всё есть уже для этого :) Просто я уже как-то подустал :)
То что вы вообще написали больше трёх строк уже подвиг на мой взгляд :)
Как я уже сказал — это гениально.
Ой, я забыл сказать, что на мой взгляд вы — просто гений. Я преклоняюсь перед вашими способностями! Спасибо!
Вообще-то, по правилам шахмат, не закрыться от шаха — это запрещенный ход (а не просто неразумный). Точнее, если королю объявлен шах, то допустимо либо закрыться, либо отодвинуть короля, либо убить нападающую фигуру. Как-то так.
Мне тоже так вспоминается. Но не будем слишком строги :).
Когда захотите awk освоить, будете ММОРПГ писать? ;)

Вообще, очень круто! Две недели кажутся сильно жалким сроком для такого объёма работы
Очень напомнило лабораторные работы по НАМ :)

sed + вечный цикл — это практически нормальные алгоритмы Маркова (Тьюринг-полный язык).
После ходов 1.е4 h5 2.Qf3 h4 3.Bc4 h3 4.Q:f7 черные в стиле гроссмейстера О. Бендера сделали ход Bf8:f7. Я был настолько обескуражен, что сдался.
Вы уж не ждите от этого умственного упражнения многого :) Там даже анализ ваших ходов не производится, получается, что компьютер видит ваши фигуры только в тот момент, когда рубит.
Это я так, если вы захотите совершенствовать. Сам факт того, что вы сделали шахматы на sed-е вызывает восхищение.
Я и не ожидал, что сейчас остались другие!
Мсье bolk, вы, наверное, и более качественную реализацию шахмат писали, причем более удобным способом? Может быть сделаете статью? Было бы интересно узнать из первых уст о создании шахмат. Хотелось бы услышать именно про взаимосвязь движка и оболочки (графического исполнения), да и про саму оболочку тоже.
Наверняка по этой теме есть много книг, тема-то старая.
Там в основном про движок — про отсечение ненужных вариантов. А вот про то, как этот алгоритм передвигает фигуры по доске редко пишут. Именно визуализация идеи (причем не только шахмат) и интересует.
Doom пока не обещаю :)

Шахматы были да, но там через сеть два человека друг с другом играли и баш всё-таки на пару порядков проще «седа» :)
Шахматы для шахматных оболочек я писал давным давно, там взаимодействие — текстовое через банальный ввод и вывод, который оболочка перенаправляет на себя, и может натравливать разные программы друг на друга.
Я уже начинаю сомневаться по поводу «недостаточно гик» :C
Intel® Core(TM) i5-3210M CPU @ 2.50GHz, (lenovo tp x230)
linux gentoo 64b
4.25s user 0.01s system 99% cpu 4.284 total
В Линуксе, по-моему, гнушный сед, у меня с гнушным тоже результат лучше:

3.29 real         3.29 user         0.00 sys
А я-то думаю почему у меня результат как у автора. Похоже на правду:

model name: Intel® Core(TM)2 Duo CPU P8700 @ 2.53GHz

6.06user 0.00system 0:06.17elapsed 98%CPU (0avgtext+0avgdata 33136maxresident)k
6.09user 0.00system 0:06.16elapsed 98%CPU (0avgtext+0avgdata 33136maxresident)k
6.05user 0.02system 0:06.19elapsed 98%CPU (0avgtext+0avgdata 33136maxresident)k
У меня эти шахматы больше похожи на space invaders

image
Видимо шрифт не юникодный или консоль.
Пока сил на это нет :) Может потом попробую.
Месячник квайнов закончился, теперь все за sed и awk возьмутся?
Извините, что не по теме, какой шрифт используется на скриншотах?
Есть серьёзное подозрение, что это Monaco. Косвенно подтверждается упоминанием мака.
Вы нереально круты. Я даже боюсь открывать исходник на ночь.
Я немного был в шоке, когда слон сделал ход f5 f3 и съел моего ферзя)))
Мои слоны тоже могут не по правилам ходить.
Вообще, снимаю шляпу.
Тут видимо какой-то баг, я программу старался отладить, но баги всё же могут быть.
Only those users with full accounts are able to leave comments. Log in, please.