2008-06-01から1ヶ月間の記事一覧
C#.use(better, IronPython="GoF") IronPython で学ぶ デザインパターンの世界 《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部改訂♪2008/09/13 Contents index 第0章 概要 第1章 コントロール 第2章 データバインディング 第3章 イベントとアクショ…
2008-04-28: getattr/setattr dir/reduce/type
lambda 関数
インスペクター
2008-08-11: StackPanel 1/1 2008-08-12: WrapPanel 1/1 2008年8月13日(水) DockPanel 2008年8月14日(木) Grid 2008年8月15日(金)
グラフィックス 2008-07-14 第4章 グラフィックス 1/5, Rectangle Rectangle マークアップと分離コード 2008-07-16 第4章 グラフィックス 3/5, Polygon Polygon マークアップと分離コード 2008-07-15 第4章 グラフィックス 2/5, Ellipse Ellipse マークアッ…
Slider Menu ルーティングイベント
ListView 2008年6月12日(木) 2008年6月13日(金) Observer パターン 2008-06-09 第2章 Observer パターン 1/3 適用事例: Observer パターン 1)事前の登録:addObserver 2)事後の更新/通知:update 2008-06-10 第2章 Observer パターン 2/3 何が問題か 適用…
2008年5月12日(月) コンテンツモデル 2008年5月13日(火) 2008年5月14日(水) 2008年5月15日(木) 2008年5月16日(金) コントロール
《index》 サンプルコードを実行するには アプリケーション管理の概要 マークアップと分離コード コントロール イベントとアクション グラフィックスとアニメーション パネルとレイアウト 【余録】Windows Forms vs. WPF サンプルコードを実行するには 2008-…
いくつかの補助関数(ユーティリティー)を規定しています。# --------------------------------------------------- after ----- class HexStone(GameItem): def width (self, g): return self.deltaX def height(self, g): return self.deltaY def isExist…
盤面に配置されるコマは、目に見えないコマ(盤面の緑が透けて見える)と、目に見えるコマ(黒:先手または白:後手)とに分かれます。 # --------------------------------------------------- after ----- def paintBackground(self, g): width = self.wid…
新たなゲーム用のモデル HexStone を規定します。# --------------------------------------------------- after ----- class HexStone(GameItem): _dx, _dy = 7, 4 # 7*7+4*4=65 8*8=64 _R2 = (_dx*2)**2 _width, _height = _dx*2, _dy*4 _dw, _dh = _dx*2,…
新たなゲームを構成するために「モデル」について再考します。
# -*- coding: utf-8 -*- #=============================================================================== # Copyright (C) 2000-2008, 小泉ひよ子とタマゴ倶楽部 # # History: Othello Game # 1988/05, Smalltalk # 2004/09, Java # 2005/02, C# # 200…
《Previous|5/5|Next》 Shall_we_Agile = Java.use(better, Python) # 《記事一覧》
(ゲーム用に開発した)既存のフレームワーク GameBoardPanel をもとに、イベントハンドラーを拡張します。# --------------------------------------------------- after ----- def this_mouseClicked(self, e): stone = self.detectStone(e) print ">>> th…
《Previous|4/5|Next》 Shall_we_Agile = Java.use(better, Python) # 《記事一覧》
(ゲーム用に開発した)既存のフレームワーク GameBoardPanel をもとに、その機能を拡張します。 # --------------------------------------------------- after ----- def locateItems(self): for x, y in self._items(): self.items.append(NullStone(x, y…
新たなゲーム用のパネル HexOthelloPanel を規定します。# --------------------------------------------------- after ----- class HexOthelloPanel(GameBoardPanel): _bounds = (-1, -1), (1, -1), (2, 0) _bounds = list(_bounds) + [(-x, -y) for x, y …
新たなゲーム用のフレーム HexOthelloFrame を規定します。# --------------------------------------------------- after ----- class HexOthelloFrame(DefaultFrame): def initialize(self): self.panel = HexOthelloPanel()従来の格子模様の盤面では、六…
新たなゲームを構成するために「ビュー」について再考します。要求仕様の変更に伴って、既存のリソースをどのように再利用できるかが鍵となります。
《Previous|3/5|Next》 Shall_we_Agile = Java.use(better, Python) # 《記事一覧》
各六角形を蜂の巣状に配置するには、ひとつ置きに配置するだけです。図のように、各六角形には、固有の座標を与えます。ここで、座標 (3,0) と座標 (5,0) との間には、座標 (4,0) に相当する図形が存在しません。また、座標 (2,1) と座標 (4,1) との間には、…
六角形の内部を「精確に」判定するのは面倒です。しかし、正多角形の内接円を使うと、単純な計算で「大まかに」判定できます。図のように、半径の長さが 7 の内接円を想定します。すると、円の中心と任意の点との距離の自乗が 49 以下なら、その点は円の内部…
正六角形を正確に表現するのに、整数座標系は不適切です。かと言って、浮動小数で図形を表現しようとすると、誤差が累積します。そこで、次のように、整数座標系で表示可能な、正六角形に近い図形で代用します。三辺の比が a:b:c の三角形に、三平方の定理を…
《Previous|2/5|Next》 Shall_we_Agile = Java.use(better, Python) # 《記事一覧》