PHPackages                             kirillzharkov/tic-tac-toe - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. kirillzharkov/tic-tac-toe

ActiveLibrary

kirillzharkov/tic-tac-toe
=========================

v1.0.2(1y ago)04PHP

Since Oct 5Pushed 1y ago1 watchersCompare

[ Source](https://github.com/KirillZharkov/tic-tac-toe)[ Packagist](https://packagist.org/packages/kirillzharkov/tic-tac-toe)[ RSS](/packages/kirillzharkov-tic-tac-toe/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

Проект "Крестики-нолики" (Tic-Tac-Toe)
======================================

[](#проект-крестики-нолики-tic-tac-toe)

Описание проекта
----------------

[](#описание-проекта)

Проект включает разработку игры "Крестики-нолики" (Tic-Tac-Toe) с использованием реляционной базы данных для сохранения результатов игр. Игра реализована на языке PHP с использованием базы данных SQLite. Пользователям предоставляется возможность просматривать историю игр и воспроизводить ранее сыгранные партии.

### Правила игры

[](#правила-игры)

- Начинают ходить всегда крестики, кем играет человек определяется случайным образом.
- Информация о датах и исходах всех партий, а также о всех ходах, сделанных во время игры, должна сохраняться в базе данных.
- Для каждой партии в базе должна храниться следующая информация:
    - Размер поля
    - Дата игры
    - Имя игрока
    - Какой фигурой играл человек
    - Какая фигура выиграла в партии
    - Запись ходов в формате: `номер хода | координата X | координата O`
- В программе должны быть реализованы три режима:
    - Новая игра.
    - Вывод списка всех сохраненных партий.
    - Повтор любой сохраненной партии (то есть повтор всех ходов из этой партии).

Требования
----------

[](#требования)

Минимальная версия PHP: 8.\_ Минимальная версия Composer: 2.\_

---

Игровой процесс
---------------

[](#игровой-процесс)

### Начало игры

[](#начало-игры)

1. **Режим игры**: Человек против компьютера: Один игрок играет против компьютера.
2. **Размер поля**: Доступен стандартный размер 3x3.

### Ввод координат

[](#ввод-координат)

Игрок добавляет в поля Х или О, вводя координаты в формате `X Y`, где:

- `X` — номер столбца (от 1 до ширины поля).
- `Y` — номер строки (от 1 до высоты поля).

Пример ввода координат для открытия ячейки на позиции (3, 5):

```
3 5
```

### Ход игры

[](#ход-игры)

1. **Определение первого игрока**: В режиме "Человек против компьютера" игрок может быть выбран случайным образом.
2. **Ход игрока**: Игрок выбирает ячейку на поле,вводя координаты (например, "1 1", " 3 2").
3. **Ход компьютера**: Если играет компьютер, он выбирает ячейку, используя определенную стратегию (рандомную). Ячейка заполняется символом компьютера.
4. **Проверка на победу**: После каждого хода проверяется, есть ли у одного из игроков три символа в ряд (по горизонтали, вертикали или диагонали).Если да, игра заканчивается победой этого игрока.
5. **Проверка на ничью**: Если все ячейки заполнены, а ни у одного из игроков нет трех символов в ряд, игра заканчивается в ничью.
6. **Продолжение игры**: Если игра не окончена, ход переходит к следующему игроку.
7. **Окончание игры**: Выводится сообщение о победе одного из игроков или о ничьей.

---

Окружение и требования для запуска
----------------------------------

[](#окружение-и-требования-для-запуска)

1. **PHP**:

    - Версия: 7.4 или выше.
    - Настройки в `php.ini`:
        - Включите SQLite (`extension=sqlite3`).
        - Убедитесь, что настройки отображения ошибок (`display_errors`) включены в режиме разработки.
2. **SQLite**:

    - Версия: 3.x.
    - Проверьте наличие прав записи в каталоге, где находятся файлы баз данных.
3. **Composer**:

    - Composer должен быть установлен глобально.
    - Используйте команду `composer` для управления зависимостями.
    - Для установки Composer следуйте [официальной документации](https://getcomposer.org/doc/00-intro.md).

---

Установка и запуск проекта
--------------------------

[](#установка-и-запуск-проекта)

1. **Склонируйте репозиторий**:

    ```
    git clone https://github.com/KirillZharkov/tic-tac-toe.git
    ```
2. **Перейдите в каталог проекта**:

    ```
    cd C:\...\tic-tac-toe
    ```
3. **Установите зависимости через Composer**:

    ```
    composer install
    ```
4. **Запуск игры: Выполните команду для запуска игры**:

    ```
    php bin/tic-tac-toe.php
    ```

    - Или если ваш пакет опубликован на Packagist, установите его глобально:

    ```
    composer global require KirillZharkov/tic-tac-toe
    ```

    - И затем выполните команду:

    ```
    tic-tac-toe
    ```

Примечания
----------

[](#примечания)

- Проверьте права на запись в каталог с базой данных SQLite.
- Дополнительную информацию можно найти в документации PHP, SQLite и Composer:
- [SQLite Documentation](https://www.sqlite.org/docs.html)
- [PHP Documentation](https://www.php.net/docs.php)
- [Composer Documentation](https://getcomposer.org/doc/)

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Total

3

Last Release

570d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/870fe595b438c907978ecb0b3ecf2aa7e780e9a28ad8ab01051e0447a4324d1e?d=identicon)[KirillZharkov](/maintainers/KirillZharkov)

---

Top Contributors

[![KirillZharkov](https://avatars.githubusercontent.com/u/149965746?v=4)](https://github.com/KirillZharkov "KirillZharkov (12 commits)")

### Embed Badge

![Health badge](/badges/kirillzharkov-tic-tac-toe/health.svg)

```
[![Health](https://phpackages.com/badges/kirillzharkov-tic-tac-toe/health.svg)](https://phpackages.com/packages/kirillzharkov-tic-tac-toe)
```

###  Alternatives

[wp-cli/wp-cli

WP-CLI framework

5.0k17.2M320](/packages/wp-cli-wp-cli)[indatus/dispatcher

Schedule your artisan commands within your application's source code

1.1k855.3k2](/packages/indatus-dispatcher)[clickalicious/phpmemadmin

phpMemAdmin - Bringing Memcached to the web

5076.0k](/packages/clickalicious-phpmemadmin)[jeremykendall/password-validator

Password Validator validates password\_hash generated passwords, rehashes passwords as necessary, and will upgrade legacy passwords.

14469.9k3](/packages/jeremykendall-password-validator)[qtism/qtism

OAT QTI-SDK

86193.8k7](/packages/qtism-qtism)[niels-de-blaauw/php-doc-check

Command line tool that identifies code that needs documentation.

43236.3k4](/packages/niels-de-blaauw-php-doc-check)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
