bricks/docs/ja/gobang.md
2025-11-19 12:30:39 +08:00

58 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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