- ブラウザで遊べるシンプルなリバーシゲームです。
- HTML、CSS、JavaScriptのみで実装し、外部ライブラリは使用していません。
- MDNのコード規約に準拠しました。
- 標準的な8x8のリバーシ盤
- 黒と白の交代制
- 有効な手の表示機能
- リアルタイムスコア表示
- ゲーム状態の通知(パス、勝敗判定)
- ゲームリセット機能
- 対局履歴の表示
- レスポンシブデザイン
- ブラウザでHTMLファイルを開きます
- 黒の石から始まります
- 盤面の有効マスに石を配置します
- 挟まれた相手の石は自動的に反転します
- 有効な手がない場合は自動的にパスとなります
- すべてのますが埋まるか、両プレイヤーがパスすると、ゲーム終了です
- 石を置く : 盤面の有効なマスをクリック
- 有効な手を表示 : 「有効な手を表示」をクリック
- ゲームをリセット : 「ゲームをリセット」ボタンをクリック
- リポジトリをローカルにクローンするか、zipファイルをダウンロードします
git clone https://github.com/Marosuke-note/ReversiCoding- ダウンロードしたフォルダ内の以下のファイルをご確認ください
| ファイル名 | 内容 |
|---|---|
| index.html | ゲームのHTML構造 |
| reversi.css | スタイル定義 |
| reversi.js | ゲームのロジック |
以下のブラウザで動作確認済みです:
- Google Chrome(推奨)
- Microsoft Edge
- HTML5
- CSS3
- JavaScript (ES6+)
ReversiCoding/
├── index.html # メインのHTMLファイル
├── reversi.css # スタイルシート
├── reversi.js # ゲームロジック
├── eslint.config.js # ESLint設定(フラット設定形式)
├── .stylelintrc.json # Stylelint設定
├── .htmlvalidate.json # HTML検証設定
├── .husky/ # Gitフック設定
│ └── pre-commit # コミット前に実行されるスクリプト
├── package.json # プロジェクト設定と依存関係
├── .gitattributes # Git属性設定
├── .github/ # GitHub関連ファイル
│ └── workflows/ # GitHub Actions
│ └── code-quality.yml # コード品質チェックワークフロー
└── README.md # このファイル
- ゲーム状態を2次元配列で管理
- イベント駆動のUI実装
- モジュール化されたゲームロジック
- 即時実行関数でのスコープ管理
- セマンティックHTMLの使用
- CSS変数によるテーマ管理
- モジュール化されたJavaScript
- アクセシビリティに配慮したマークアップ
- レスポンシブデザイン
- JSDocによるコメント
- 適切なエラー処理
このプロジェクトでは以下の品質保証対策を実施しています:
-
ESLint: JavaScriptのコード品質とスタイルをチェック
- 実行コマンド:
npm run lint:js - 修正コマンド:
npm run lint:js(--fixフラグ内蔵)
- 実行コマンド:
-
Stylelint: CSSのコード品質とスタイルをチェック
- 実行コマンド:
npm run lint:css - 修正コマンド:
npm run lint:css(--fixフラグ内蔵)
- 実行コマンド:
-
HTML Validate: HTMLの構造と品質をチェック
- 実行コマンド:
npm run lint:html
- 実行コマンド:
-
一括実行: すべてのリントを実行
- 実行コマンド:
npm run lint
- 実行コマンド:
-
コード整形: Prettierによるコード整形
- 実行コマンド:
npm run format
- 実行コマンド:
- husky: コミット前に自動的にコード品質チェックを実行
- pre-commitフック: コミット前にlint-stagedを実行
- lint-staged: 変更されたファイルに対してのみリントを実行
- GitHub Actions: プッシュとプルリクエスト時に自動的にコード品質チェックを実行
- すべてのブランチで有効
- Node.js ver20環境で実行
- 設定ファイル:
.github/workflows/code-quality.yml
- AI対戦機能の追加
- 保存と再生機能
- オンライン対戦モード
- モバイル向け最適化
- テスト自動化の導入
- パフォーマンス最適化
- Node.js (v20)
- npm (v10)
- Git
npm installhuskyとlint-stagedは自動的にセットアップされます。npm install実行後、コミット時に変更されたファイルに対して自動的にリントが実行されるようになります。
TODO 開発用サーバー設定
静的なHTMLファイルなので、任意のWebサーバーで提供できます。簡易的には以下のようなコマンドで開発サーバーを起動できます:
# Node.jsのhttp-serverを使用する場合
npx http-server
- このプロジェクトはコード練習用に作成しました。
- コードは自由に使用、複製、変更できますが、その際の動作保証はありません。
Marosuke-note
- 感想やバグ報告は Issues にてお願いします。