テストケースを記述する(2)
(Jython で作成した)既存のモジュール hexagon.py を再利用しながら、新たなモジュールの動作を検証するために、テストケースを作成します。
class ExWindow(Window): def init(self): target = "tabControl", "button", self._Controls(target) self.items = {} for e, mino in TestCase(): self.items[e] = mino item = TabItem(Header=e) self.tabControl.Items.Add(item) panel = Canvas() item.Content = panel self.addMino(panel, mino) self.tabControl.SelectionChanged += self.selectionChanged self.button.Click += self.click self.KeyDown += self.keyDown
ジェネレーター TestCase によって、10種類のテトリミノが得られます。
def keyDown(self, sender, e): KeyValues(e.Key).switch({ Key.Left : (self.mino.shift, (-1,)), Key.Right: (self.mino.shift, ( 1,)), Key.Up : (self.mino.counterClockwise, ()), Key.Down : (self.mino.rotateClockwise , ()), })
矢印キーを選択すると、テトリミノを回転(↓|↑)シフト(←|→)できます。
class KeyValues: def __init__(self, value): self.value = value def switch(self, cases): for key, (f, args) in cases.items(): if key == self.value: apply(f, args)
押されたキーに対応するアクションを起動します。