さまざまな補助関数
いくつかの補助関数(ユーティリティー)を規定しています。
# --------------------------------------------------- after -----
class HexStone(GameItem):
def width (self, g): return self.deltaX
def height(self, g): return self.deltaYdef isExistPoint(self, x, y):
px, py = self._points()
X, Y = x-px, y-py
return X*X+Y*Y <= self._R2
def _points(self):
x = self.x*self.deltaX+self._width
y = self.y*self.deltaY+self._height
return x, y
〈新規〉目に見えるコマ HexStone は、後述する目に見えないコマ NullStone を包括する機能を提供します。
# --------------------------------------------------- after -----
class NullStone(HexStone):
def __nonzero__(self): return False
def paintItem(self, g): pass
N = HexOthelloPanel.dim + 1
nullStone = NullStone(None, None, None)
〈新規〉目に見えないコマ NullStone は、特殊なコマ HexStone と見なせます。これは、大域変数 nullStone を介して参照される Singleton です。つまり、広く盤面に配置されているように見えても、その実体は sole-instance です。