# GobangPoint

**コントロール機能**：五目並べの盤面における1つの石の位置を表す。状態に応じて、空き、黒石、または白石として表示され、マウスホバー効果もサポートする。  
**タイプ**：通常コントロール  
**親クラス**：`bricks.Image`

## 初期化パラメータ

| パラメータ名 | 型 | 説明 |
|--------------|----|------|
| `p_status` | 数値（Number） | 石の状態：0 は空き、1 は黒石、2 は白石を示す |
| `p_x` | 数値（Number） | 水平位置、範囲は1から15まで |
| `p_y` | 数値（Number） | 垂直位置、範囲は1から15まで |
| `tip` | 文字列（String、任意） | マウスオーバー時のツールチップテキスト |

> 注：コンストラクタは自動的に `calc_url()` を呼び出し、位置と状態に基づいて対応する画像パスを生成し、`set_url()` を通じて画像ソースを設定します。

## 主なイベント

- **`mouseover`**  
  マウスがコントロール領域に入ったときに発生。`set_current_position(true)` を呼び出し、現在の座標にハイライトスタイル（CSSクラス `curpos` を追加）を適用する。

- **`mouseout`**  
  マウスがコントロール領域から離れたときに発生。`set_current_position(false)` を呼び出し、ハイライトスタイルを削除する。

---

# Gobang

**コントロール機能**：15×15の五目並べゲームのインターフェースを実現するコンテナコントロール。盤面の描画、各石の状態管理、プレイヤーのターン制御などを担当する。  
**タイプ**：コンテナコントロール  
**親クラス**：`bricks.VBox`

## 初期化パラメータ

外部からの明示的なパラメータはなし。内部で以下の初期化処理を行う：

- 自動的にレイアウト調整用の `Filler` コントロールを作成
- 15×15の碁石ポイント配列（`GobangPoint` 使用）を作成・描画
- ウィンドウサイズ変更イベントに連動して、各マスのサイズを動的に調整し、正方形を維持しつつ使用可能な空間を埋めるようにする

## 主なイベント

- **`element_resize`**（`filler` にバインド）  
  `filler` のDOM要素のサイズが変化したときに発生。`resize_area()` メソッドを呼び出して、各マスの幅と高さを再計算し、盤面がコンテナに比例して適切にリサイズされるよう保証する。

### カスタムメソッドの説明

- `render_empty_area()`  
  空の盤面を初期化・描画する。ネストされた `VBox` と `HBox` 構造を作成し、15×15の `GobangPoint` インスタンスを配置。後続の操作のために `this.area[i][j]` に格納する。

- `resize_area()`  
  `filler` の実際のサイズに基づき、各マスのサイズを動的に計算（最小辺の長さを15で割った値）。全 `GobangPoint` に対して統一された幅と高さのスタイルを設定する。

- `inform_go(party)`  
  （現在は空の実装）指定されたプレイヤー（例：`'black'` や `'white'`）に次の手番を通知するためのメソッド。AIやネット対戦ロジックとの連携に利用可能。

> 注：このコントロールは `bricks.Factory.register('Gobang', bricks.Gobang);` によって登録されており、テンプレート中で `<widget type="Gobang"/>` の形式で使用可能である。