Пример Генерации Кода
Этот пример показывает, как использовать DeepSeek для генерации кода, включая описание требований, генерацию кода и объяснение деталей реализации.
Задача
Создать полную HTML-игру "Пять в ряд" (Гомоку), включая игровую логику и стили интерфейса.
Инструкции
Пожалуйста, помогите создать игру "Пять в ряд" на HTML, сохранив весь код в одном HTML-файле.
Пример Ответа
Конечно! Вот HTML-код для простой игры "Пять в ряд". Код включает базовую игровую доску, где игроки могут по очереди ставить фишки, нажимая на клетки. Игра проверяет, есть ли победитель.
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Игра "Пять в ряд"</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
            font-family: Arial, sans-serif;
        }
        #board {
            display: grid;
            grid-template-columns: repeat(15, 30px);
            grid-template-rows: repeat(15, 30px);
            gap: 1px;
            background-color: #d18b47;
            padding: 10px;
            border-radius: 5px;
        }
        .cell {
            width: 30px;
            height: 30px;
            background-color: #ffce9e;
            border: 1px solid #d18b47;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
        }
        .cell.black::before, .cell.white::before {
            content: '';
            width: 20px;
            height: 20px;
            border-radius: 50%;
        }
        .cell.black::before {
            background-color: black;
        }
        .cell.white::before {
            background-color: white;
        }
        #message {
            margin-top: 20px;
            font-size: 24px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div id="board"></div>
    <div id="message"></div>
    <script>
        const boardSize = 15;
        let currentPlayer = 'black';
        let board = Array.from({ length: boardSize }, () => Array(boardSize).fill(null));
        function createBoard() {
            const boardElement = document.getElementById('board');
            for (let i = 0; i < boardSize; i++) {
                for (let j = 0; j < boardSize; j++) {
                    const cell = document.createElement('div');
                    cell.classList.add('cell');
                    cell.dataset.row = i;
                    cell.dataset.col = j;
                    cell.addEventListener('click', handleCellClick);
                    boardElement.appendChild(cell);
                }
            }
        }
        function handleCellClick(event) {
            const row = parseInt(event.target.dataset.row);
            const col = parseInt(event.target.dataset.col);
            if (board[row][col] !== null) return;
            board[row][col] = currentPlayer;
            event.target.classList.add(currentPlayer);
            if (checkWin(row, col, currentPlayer)) {
                document.getElementById('message').textContent = 
                    `${currentPlayer === 'black' ? 'Черные' : 'Белые'} выиграли!`;
                document.querySelectorAll('.cell').forEach(cell => 
                    cell.removeEventListener('click', handleCellClick));
                return;
            }
            currentPlayer = currentPlayer === 'black' ? 'white' : 'black';
        }
        function checkWin(row, col, player) {
            const directions = [
                { dr: 0, dc: 1 },  // горизонталь
                { dr: 1, dc: 0 },  // вертикаль
                { dr: 1, dc: 1 },  // главная диагональ
                { dr: 1, dc: -1 }  // побочная диагональ
            ];
            for (const { dr, dc } of directions) {
                let count = 1;
                // проверка в одном направлении
                for (let i = 1; i < 5; i++) {
                    const r = row + dr * i;
                    const c = col + dc * i;
                    if (r < 0 || r >= boardSize || c < 0 || c >= boardSize || 
                        board[r][c] !== player) break;
                    count++;
                }
                // проверка в противоположном направлении
                for (let i = 1; i < 5; i++) {
                    const r = row - dr * i;
                    const c = col - dc * i;
                    if (r < 0 || r >= boardSize || c < 0 || c >= boardSize || 
                        board[r][c] !== player) break;
                    count++;
                }
                if (count >= 5) return true;
            }
            return false;
        }
        createBoard();
    </script>
</body>
</html>Объяснение Кода
- 
HTML Структура:
#board- контейнер для игровой доски, использует grid-layout для создания сетки 15x15.cell- стиль для каждой клетки, при клике вызывает событиеhandleCellClick#message- для отображения результата игры
 - 
CSS Стили:
- Стили для доски и клеток, включая цвета фона, границы и стили фишек
 - Использование CSS Grid для создания сетки доски
 - Использование псевдоэлементов для отображения фишек
 
 - 
JavaScript Логика:
- Функция 
createBoardдля создания игровой доски - Функция 
handleCellClickобрабатывает клики по клеткам, обновляет состояние и проверяет победу - Функция 
checkWinпроверяет, собрал ли текущий игрок пять фишек в ряд 
 - Функция 
 
Инструкция по Использованию
- Сохраните код как 
.htmlфайл - Откройте файл в браузере
 - Черные и белые ходят по очереди, кликая по клеткам доски
 - Когда один из игроков соберет пять в ряд, игра завершится и покажет сообщение о победителе
 
Особенности
- Поддержка поочередных ходов черных и белых
 - Автоматическое определение победителя
 - Защита от повторного хода в занятую клетку
 - Блокировка доски после окончания игры
 - Чистый и красивый дизайн интерфейса
 
Пример Кода
from openai import OpenAI
client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)
completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
            "role": "user",
            "content": "Пожалуйста, помогите создать игру 'Пять в ряд' на HTML, сохранив весь код в одном HTML-файле."
        }
    ]
)
print(completion.choices[0].message.content)