Условие:
Напишите игру крестики-нолики.
Игровое поле размера 3 на 3. Нумеруем строки латинскими буквами a b c, а столбцы цифрами 1 2 3. Таким образом, мы можем задать конкретную ячейку поля двумя символами, например a1 - верняя левая ячейка.
Разминка 1 Напишите программу, которая получает от пользователя строку текста (используйте gets2 из заданий про строки) и выводит на экран сообщение OK, если это корректные координаты ячейки, иначе Fail. Корректные координаты - это два символа: первый латинская буква, второй - цифра. Перед и после координат могут быть пробелы - их надо проигнорировать.
Теперь нужно решить, каким образом мы будем хранить поле. Например, как двумерный массив char field[3][3]. Правда, такой массив неудобно передавать в качестве параметра функции (нужно указывать все размерности, кроме первой, например void myfunc(char f[][3])). Посему можно взять и одномерный char field[9] и всё время помнить, что строк в игре на самом деле 3.
У каждой ячейки 3 состояния (мы можем использовать соответствующие символы):
пустая - пробел ' '
в ней крестик 'X'
в ней нолик '0'
Решение:
Давайте напишем программу для игры в крестики-нолики на языке C. Мы начнем с реализации функции, которая проверяет корректность введенных координат, а затем создадим структуру для хранения игрового поля и реализуем основные функции игры.
Шаг 1: Проверка координат
Сначала создадим функцию, которая будет проверять, корректны ли введенные координаты. Мы будем использовать функцию
gets для получения ввода от пользователя и sscanf для разбора строки.Теперь создадим игровое поле и реализуем функции для инициализации и отображения поля. Теперь добавим логику для игры, включая возможность делать ходы и проверять победителя. Теперь вы можете скомпилировать и запустить программу. Она будет запрашивать координаты, проверять их корректность, обновлять игровое поле и определять победителя. Мы создали простую игру в крестики-нолики на языке C, которая включает в себя проверку координат, хранение игрового поля и логику игры. Вы можете расширить эту программу, добавив дополнительные функции, такие как возможность играть против компьютера или сохранять результаты игр.
