Nf3, Ng1f3 и g1f3: почему один шахматный ход записывается по-разному
Ход конём с g1 на f3 может выглядеть как Nf3, Ng1f3 или g1f3 — и во всех трёх случаях речь может идти об одном и том же ходе. Разница возникает потому, что правила FIDE, формат PGN и протокол UCI решают разные задачи: человеку нужна компактная понятная запись, а программе — однозначная команда.
Разберём, что означает каждый вариант, где он используется и почему для надёжного перевода между форматами часто нужна не только строка хода, но и текущая позиция на доске.
Один ход — три разных представления
Возьмём простой пример: белый конь идёт с поля g1 на f3. Сам ход на доске один, но записать его можно по-разному.
| Где используется | Запись | Что явно указано |
|---|---|---|
| Обычная алгебраическая запись FIDE | Nf3 |
Фигура и поле назначения |
| Допустимая длинная форма FIDE | Ng1f3 |
Фигура, исходное поле и поле назначения |
| PGN, canonical SAN | Nf3 |
Компактная запись хода по правилам SAN |
| UCI | g1f3 |
Исходное и конечное поле |
Поэтому Nf3, Ng1f3 и g1f3 не являются тремя разными ходами. Это разные способы представить один ход для разных задач.
Что означает Nf3
В короткой алгебраической записи буква N означает коня — от английского knight, а f3 — поле назначения. Исходное поле обычно не пишется: если из текущей позиции только один конь может легально попасть на f3, этого достаточно.
Именно такой компактный принцип используется и в SAN — Standard Algebraic Notation, в которой записываются ходы в movetext стандартного PGN. Поэтому обычная последовательность начала партии выглядит знакомо:
1. e4 e5 2. Nf3 Nc6 3. Bb5
Если одинаковые фигуры могут легально пойти на одно и то же поле, запись уточняется. Например, вместо Nf3 может понадобиться Ngf3 или N1f3: добавляется вертикаль или горизонталь исходного поля, достаточная для устранения неоднозначности.
Что означает Ng1f3
Правила FIDE допускают более длинную форму алгебраической записи, где явно указывается исходное поле. Для нашего примера это Ng1f3.
Такая запись избыточнее, зато сразу показывает, какой именно конь сделал ход. В официальном приложении FIDE рядом существуют обе формы: короткая Nf3 и допустимая длинная Ng1f3.
Важно не путать эту длинную форму FIDE с UCI. В Ng1f3 остаётся буква фигуры, а в UCI-строке g1f3 её нет.
Что означает g1f3 в UCI
UCI — Universal Chess Interface — предназначен прежде всего для обмена командами между шахматным интерфейсом и движком. Поэтому здесь важна не привычность записи для человека, а однозначное указание перехода с одного поля на другое.
В обычных шахматах базовая UCI-строка хода состоит из исходного и конечного поля:
e2e4
e7e5
g1f3
Буква фигуры не нужна: если программа уже знает текущую позицию, она знает, что на g1 стоит белый конь. Знак взятия x, обозначение шаха + или мата # также не входят в такую строку хода.
По этой причине сырая главная линия движка может выглядеть как e2e4 e7e5 g1f3, тогда как шахматный интерфейс показывает человеку ту же последовательность как 1. e4 e5 2. Nf3.
FIDE и SAN похожи, но это не одно и то же правило записи
В обычных ходах запись FIDE и SAN часто выглядит одинаково. Но при работе с файлами и программами важны детали.
| Ситуация | FIDE | PGN / SAN | UCI для обычных шахмат |
|---|---|---|---|
| Пешка e2 → e4 | e4 |
e4 |
e2e4 |
| Конь g1 → f3 | Nf3 |
Nf3 |
g1f3 |
| Короткая рокировка белых | 0-0 |
O-O |
e1g1 |
| Превращение e7 → e8 в ферзя | e8Q |
e8=Q |
e7e8q |
В FIDE обозначения взятия x, шаха + и мата # в ряде случаев являются необязательными элементами записи. Canonical SAN для PGN формализован строже: взятие записывается с x, рокировка — буквами O-O или O-O-O, превращение — через знак =, а шах и мат получают соответствующий суффикс.
Именно поэтому нельзя считать любую «алгебраическую запись» автоматически готовым SAN для PGN.
Почему для перевода между форматами нужна позиция
На первый взгляд кажется, что Nf3 можно просто заменить на g1f3, а обратно — добавить букву N. Это работает только в заранее известной простой позиции.
Строка Nf3 сама по себе не сообщает исходное поле. Чтобы получить UCI, программа должна знать текущую расстановку и определить, какой конь может легально прийти на f3.
Обратное преобразование тоже требует позиции. По строке g1f3 нужно определить:
- какая фигура находится на g1;
- является ли ход легальным;
- нужно ли в SAN уточнять исходную вертикаль или горизонталь;
- является ли ход взятием;
- даёт ли он шах или мат.
Поэтому надёжный конвертер SAN ↔ UCI работает не только со строкой хода, а с состоянием доски. В PGN это состояние последовательно восстанавливается из предыдущих ходов. Для отдельной позиции его можно задать, например, через FEN.
Специальные ходы особенно хорошо показывают разницу
Короткая рокировка белых — хороший пример. Для человека это один специальный ход короля и ладьи. В FIDE он записывается как 0-0, в canonical SAN — как O-O, а UCI для обычных шахмат передаёт его как ход короля e1g1.
При превращении различие ещё заметнее. Ход пешки с e7 на e8 с превращением в ферзя может выглядеть как e8Q в записи FIDE, e8=Q в SAN и e7e8q в UCI.
Для Chess960 у UCI есть дополнительные особенности передачи рокировки, поэтому примеры выше относятся к обычной начальной расстановке шахмат.
Как понять, какую запись требует программа
- Если поле ожидает ход из PGN или прямо указано SAN, используйте форму вроде
Nf3,exd5,O-O. - Если программа или API просит UCI move, нужна форма вроде
g1f3,e2e4,e7e8q. - Если речь о записи партии человеком по правилам FIDE, обычно достаточно короткой алгебраической формы; длинная форма с исходным полем также допустима.
- Если формат не указан, не стоит угадывать по внешнему виду поля ввода: сначала проверьте документацию программы или пример корректного значения.
Короткая памятка
Nf3 — компактная человеческая запись и canonical SAN для обычного хода коня.
Ng1f3 — допустимая длинная алгебраическая форма FIDE с исходным полем.
g1f3 — UCI-строка, где явно указаны исходное и конечное поля.
Главное различие не в том, какая запись «правильнее», а в том, для кого и для какой задачи она предназначена. Человеческая запись старается быть компактной и читаемой, а машинная — передать ход без лишних символов в форме, которую однозначно понимает программа при известной позиции.
Источники: FIDE Laws of Chess, Appendix C; Portable Game Notation Specification and Implementation Guide; Universal Chess Interface protocol specification.