Пример Генерации Кода

Этот пример показывает, как использовать 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>

Объяснение Кода

  1. HTML Структура:

    • #board - контейнер для игровой доски, использует grid-layout для создания сетки 15x15
    • .cell - стиль для каждой клетки, при клике вызывает событие handleCellClick
    • #message - для отображения результата игры
  2. CSS Стили:

    • Стили для доски и клеток, включая цвета фона, границы и стили фишек
    • Использование CSS Grid для создания сетки доски
    • Использование псевдоэлементов для отображения фишек
  3. JavaScript Логика:

    • Функция createBoard для создания игровой доски
    • Функция handleCellClick обрабатывает клики по клеткам, обновляет состояние и проверяет победу
    • Функция checkWin проверяет, собрал ли текущий игрок пять фишек в ряд

Инструкция по Использованию

  1. Сохраните код как .html файл
  2. Откройте файл в браузере
  3. Черные и белые ходят по очереди, кликая по клеткам доски
  4. Когда один из игроков соберет пять в ряд, игра завершится и покажет сообщение о победителе

Особенности

  • Поддержка поочередных ходов черных и белых
  • Автоматическое определение победителя
  • Защита от повторного хода в занятую клетку
  • Блокировка доски после окончания игры
  • Чистый и красивый дизайн интерфейса

Пример Кода

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)