Python Regex для анализа шахматных ходовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Regex для анализа шахматных ходов

Сообщение Anonymous »

Следует учитывать следующие условия:

[*]целевой квадрат должен быть указан в полную длину (координаты a-h и 1-8 на доске)Исключением является рокировка, которая отмечается в традиционной записи рокировки (, O-O-O).

[*]Заполните слова типа take или go to. необязательно.

[*] является необязательным, если координаты атакующей фигуры указаны, иначе не имеет смысла.

[*]Если фигуры или слова-заполнители выписаны (, переходит к, king, захватывает), их необходимо буферизовать пробелами. Также пробел не требуется, если слово находится в начале или конце входной строки. Если фрагмент сокращен до одного символа, следующий пробел не нужен.
( -> пробелы не требуются; рыцарь f3 -> да пробел; Nxd4 -> белый цвет не требуется; N дублей d4 -> с каждой стороны дублей требуются пробелы)

[*]Если фрагмент сокращен, то это необходимо быть заглавной буквой, чтобы отличить ее от координат доски ( для слона и координаты b).

[*]Если заданы обе координаты атакующей фигуры ( — Pe2e4), или фигура — пешка, фигуру отдавать не обязательно ( — это Pe4).

[*]Шах и мат не являются обязательными и также должны быть буферизованы пробелами, если они не сокращены. (да Лd8+, да Лd8 проверка, да Лd8 +, нет Лd8проверка).


ПРИМЕР ВХОДЫ:

Код: Выделить всё

Knight on g1 goes to f3
b captures a8 =q checkmate
Ra1e1+
rook 2 to f8 with check
O-O-O#
Возможное структурирование регулярного выражения:

Код: Выделить всё

[Knight ][on ][g1][ to ][f3][ with check] -> 'Knight to f3' not possible!
[Knight][ on][ g1][ to ][f3][ with check] -> 'Ng1f3' not possible!
[Knight][ on ][g1][ to ][f3][ with check] -> 'Knight g1 to f3' not possible!
Вот что у меня получилось:

Код: Выделить всё

r'(Knight|knight|N)?( on )?[a-h]?[1-8]?( to | takes | captures )?[a-h][1-8](Q|=Q| queen)?( check| checkmate)?'
Здесь много двойных пробелов и нет пробелов там, где они необходимы.
Я уверен, что есть лучший способ сделать это...


Подробнее здесь: https://stackoverflow.com/questions/791 ... ve-parsing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python Regex для анализа шахматных ходов
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Python Regex для анализа шахматных ходов
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Нейронная сеть для прогнозирования шахматных ходов не может получить соответствующий результат
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Есть ли лучший способ выполнить проверку ходов в моей шахматной программе?
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Pygame — при перемещении некоторых шахматных фигур иногда они могут захватить своих товарищей по команде.
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»