Skip to content

ponzudomo/vizchess

Repository files navigation

このリポジトリについて

作りたいものがあったので、とりあえず試作 ドキュメント含めまだほぼAIが書いてます

VizChess(仮)

チェス初心者向けの学習・対戦サポートWebアプリケーション。 「駒の利き(攻撃範囲)」を視覚的にガイドすることで、盤面の状況を直感的に理解し、ブランダー(悪手)を減らす手助けをします。

目次

コンセプト

初心者が「どこに動かしていいか」「どこが危ないか」を一目で判断できるようにし、盤面感覚を養う。

リポジトリ構造

docs/ — 設計・仕様ドキュメント

docs/
├── architecture/
│   ├── tech_stack.md        # 技術スタックの選定理由 (Next.js, chess.js, etc.)
│   └── data_flow.md         # データフローと状態管理
├── design/
│   ├── ui_mockup.md         # 画面レイアウト・コンポーネント構成案
│   └── color_palette.md     # 配色定義 (青・赤・紫)
├── specs/
│   ├── visualization.md     # 可視化ロジック (攻撃範囲計算アルゴリズム)
│   ├── game_modes.md        # 各モードの挙動詳細
│   └── gameplay_mechanics.md # 対局機能・駒の挙動詳細
├── git_workflow.md          # ブランチ運用・コミットメッセージのルール
└── roadmap.md               # 開発ロードマップ・タスク一覧

src/ — アプリケーションソースコード

src/
├── app/
│   ├── globals.css          # グローバルスタイル
│   ├── layout.tsx           # ルートレイアウト
│   └── page.tsx             # トップページ(レイアウト・useBoardLayout フック)
├── components/
│   ├── Board/
│   │   └── ChessBoard.tsx   # チェス盤コンポーネント(マス色のオーバーレイ描画)
│   ├── Controls/
│   │   └── GameControls.tsx # 操作ボタン群(Board Scope / Flip / Undo / Reset)
│   └── UI/
│       └── GameInfo.tsx     # ゲーム情報パネル(手番・取った駒・棋譜)
├── hooks/
│   └── useChess.ts          # チェスロジックのカスタムフック(移動・選択・状態同期)
├── lib/
│   └── chess-analyzer.ts    # 攻撃範囲計算ロジック (analyzeBoard / analyzePiece)
└── store/
    └── game.ts              # Zustand によるグローバル状態管理

主な機能 (Core Features)

1. ガイド付きチェス対局

通常のチェス対局機能に加え、以下の2つの視覚化モードを搭載する。これらはいつでも切り替え可能。

① 全体攻撃範囲の可視化モード (Board Scope)

盤面全体の支配状況を色分けして表示する。 画面下部にボタンを用意し、敵味方ごとにオンオフの切り替えを可能にする。

  • 🔴 相手の攻撃範囲: 赤色でハイライト
  • 🔵 自分の攻撃範囲: 青色でハイライト
  • 🟣 激戦区 (Overlap): 双方が攻撃しているマスは紫色で表示

Warning

駒のクリックは駒を動かすためのイベントにしたいので、Piece Scopeは一旦無効化しています 後でなんかいいやり方考える

② 特定駒のマーキングモード (Piece Scope)

特定の駒をマーキングして、その駒の攻撃範囲を追うことができる。 一度マークすると、ターンが切り替わってもマークを外すまで可視化は外れない。

  • 操作: 考え中
  • 表示:
    • 選択した駒が敵の場合: その駒を赤く強調し、その駒の攻撃範囲のみを表示
    • 選択した駒が味方の場合: その駒を青く強調し、その駒の攻撃範囲のみを表示
    • 協調の際は、透明度20%程度で赤色や青色を重ね、元の色(白or黒)が分かるようにする
  • 解除: もう一度クリックすると解除

2. 基本的な対局機能

  • プレイヤー vs プレイヤー (ローカル/オフライン)
  • プレイヤー vs CPU (AI) ※将来実装予定
  • 棋譜の記録 (PGN形式)
  • 盤面のリセット / 待った機能

技術スタック (予定)

  • Frontend: React, Next.js, Tailwind CSS
  • Chess Logic: chess.js (ルールの判定、移動の検証)
  • Visualization: react-chessboard (またはカスタムSVG描画)
  • Deployment: Vercel

開発ロードマップ

  • プロジェクトのセットアップ (Next.js)
  • チェス盤の表示と駒の配置
  • 基本的なルールの実装 (chess.js連携)
  • 機能①: 全体攻撃範囲の可視化ロジック実装
  • 機能②: 個別駒のマーキング機能実装
  • UI/UXのブラッシュアップ

About

駒の攻撃範囲が視覚化された、補助輪付きのチェス対局サイトを作りたい

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors