新たなパネル:メソッド

(ゲーム用に開発した)既存のフレームワーク GameBoardPanel をもとに、その機能を拡張します。



# --------------------------------------------------- after -----
def locateItems(self):
for x, y in self._items():
self.items.append(NullStone(x, y, None))
for x, y, color in (
(6 , 3, self.black),
(9 , 4, self.black),
(6 , 5, self.black),
(10, 3, self.white),
(7 , 4, self.white),
(10, 5, self.white)):
self.place(HexStone(x, y, color))

〈改訂〉ゲームの初期画面を構成します。まず、後述する補助関数 _items で得られる各座標に(目に見えない)コマ NullStone を配置します。次に、(目に見える)白黒3つずつのコマ HexStone を配置します。

    def _items(self):
s = []
for y, xpoints in enumerate((
range(3, 14, 2),
range(2, 15, 2),
range(1, 16, 2),
range(0, 17, 2),
range(1, 16, 2),
range(0, 17, 2),
range(1, 16, 2),
range(2, 15, 2),
range(3, 14, 2))):
s += [(x, y) for x in xpoints]
return s

〈新規〉locateItems の補助関数として、盤面を構成する有効座標(コマを配置できる位置)を列挙したリスト s を生成します。最小6個から最大9個までのコマを、横方向に配置できます。


Previous|3/5|Next