# 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);` によって登録されており、テンプレート中で `` の形式で使用可能である。