58 lines
3.4 KiB
Markdown
58 lines
3.4 KiB
Markdown
# 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"/>` の形式で使用可能である。 |