Шрифт:
Помимо «традиционной» шахматной нотации (например, «P-K4») существует еще «алгебраическая», которую многие предпочитают. Но написанный код вообще не имеет представления о том, какой нотацией мы пользуемся.
Поскольку это было несложно сделать, мы позволяем игроку в любой момент сдаться. Рисование доски тоже заглушено. Желающие могут реализовать грубый рисунок, выполненный ASCII-символами.
Метод
my_move
всегда относится к локальному концу, метод other_move
— к удаленному. В листинге 18.3 приведен протокол сеанса. Действия клиентов нарисованы друг против друга.
Листинг 18.3. Протокол сеанса шахматной игры
% ruby chess.rb Hal % ruby chess.rb
Capablanca:deepthought.org Hal:deepdoodoo.org
Устанавливается соединение... Устанавливается соединение...
Ваш противник Capablanca... у вас белые. Ваш противник Hal... у вас черные.
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Ваш ход: N-QB3 Противник: N-QB3
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Противник: P-K4 Ваш ход: P-K4
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Ваш ход: P-K4 Противник: P-K4
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Противник: B-QB4 Ваш ход: B-QB4
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Ваш ход: B-QB4 Противник: B-QB4
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... +
+------------------------------+ +------------------------------+
Противник: Q-KR5 Ваш ход: Q-KR5
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Ваш ход: N-KB3 Противник: N-KB3
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Противник: QxP Checkmate! Ваш ход: QxP
+------------------------------+ +------------------------------+
| Заглушка! Шахматная доска... | | Заглушка! Шахматная доска... |
+------------------------------+ +------------------------------+
Capablanca поставил вам мат. Вы поставили мат Hal!