Треки
/
ABAP
ABAP
/
Вправи
/
Стан гри у хрестики-нулики
Стан гри у хрестики-нулики

Стан гри у хрестики-нулики

Середня

Вказівки

У цій вправі ми реалізуємо програму, яка визначає стан гри в хрестики-нулики. (Можливо, цю гру також знають як «noughts and crosses» або «Xs and Os».)

Гра відбувається на полі 3×3. Гравці по черзі ставлять X та O на поле. Гра закінчується, коли один гравець перемагає, поставивши три свої позначки в рядок, стовпець або по діагоналі поля, або коли все поле заповнене.

У цій вправі ми припускаємо, що першим ходить X.

Наше завдання - визначити, у якому стані перебуває задана гра.

Є 3 можливі стани гри:

  • Гра триває: ongoing.
  • Гра закінчилася нічиєю: draw.
  • Гра закінчилася перемогою: win.

Якщо задане поле неправильне, киньте відповідну помилку.

Поле вважається неправильним, якщо виконуються такі умови:

  • Задане поле не можна отримати, якщо ходи робити в правильному порядку (памʼятаємо, що першим ходить X).
  • Гру продовжували після того, як вона вже закінчилася.

Приклади

Гра триває

   |   |
 X |   |
___|___|___
   |   |
   | X | O
___|___|___
   |   |
 O | X |
   |   |

Нічия

   |   |
 X | O | X
___|___|___
   |   |
 X | X | O
___|___|___
   |   |
 O | X | O
   |   |

Перемога

   |   |
 X | X | X
___|___|___
   |   |
   | O | O
___|___|___
   |   |
   |   |
   |   |

Неправильне поле

Неправильний порядок ходів
   |   |
 O | O | X
___|___|___
   |   |
   |   |
___|___|___
   |   |
   |   |
   |   |
Продовження гри після перемоги
   |   |
 X | X | X
___|___|___
   |   |
 O | O | O
___|___|___
   |   |
   |   |
   |   |
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
ABAP Exercism

Час розпочати Стан гри у хрестики-нулики?

Зареєструйтеся на Exercism, щоб вивчати й опановувати ABAP, а також 54 вправи та справжнє наставництво від людей, і все це безкоштовно.