# -*- coding: utf-8 -*-
#===============================================================================
# Copyright (C) 2000-2008, 小泉ひよ子とタマゴ倶楽部
#
# History: Games
# 1988/05, Smalltalk
# 2004/09, Java
# 2005/02, C#
# 2005/03, Jython
#===============================================================================
#===============================================================================
# 配列と別れる50の方法
#===============================================================================
from java.awt import *
from java.awt.event import *
from java.lang import *
from java.util import *
from javax.swing import *
#===============================================================================
class DefaultFrame(JFrame):
defaultTitle = "Default Title"
defaultSize = Dimension(200, 100)
def __init__(self, title=None, size=None):
self.initialize()
self.initializeFrame(title, size)
self.initializeComponent()
self.visible = True
def initialize(self): pass
def initializeFrame(self, title=defaultTitle, size=defaultSize):
JFrame.__init__(self,
defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
size=size, title=title)
def initializeComponent(self): pass
#===============================================================================
class GameBoardPanel(JPanel):
def __init__(self):
JPanel.__init__(self, mouseClicked=self.this_mouseClicked)
self.initialize()
def initialize(self):
self.items = []
self.locateItems()
self.settle()
def locateItems(self):
raise NotImplementedError, "def locateItems(self)"
def settle(self): pass
def paintComponent(self, g):
self.prepare()
self.paintItems(g)
def prepare(self):
raise NotImplementedError, "def prepare(self)"
def paintItems(self, g):
for e in self.items:
e.paint(g)
def detect(self, x, y):
obj = self.nullObject()
for e in self.items:
if e.isExist(x, y): obj = e; break
return obj
def nullObject(self):
raise NotImplementedError, "def nullObject(self)"
#===============================================================================
class Shape(object):
def dim(self):
raise NotImplementedError, "def dim(self)"
def paint(self, g):
self.paintBackground(g)
self.paintItem(g)
def isExist(self, x, y):
raise NotImplementedError, "def isExist(self,x,y)"
#===============================================================================
class GameItem(Shape):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return "(%r,%r)"%(self.x, self.y)
def width(self, g):
return g.clipBounds.width / self.dim()
def height(self, g):
return g.clipBounds.height / self.dim()
def isExist(self, x, y):
return (self.x, self.y) == (x, y)
#===============================================================================
from _jython2_ import *
signature("-", __file__, '1.0.1')
#===============================================================================