我是 smalltalk 的新手,正在尝试制作一个简单的井字游戏,我希望我的模型类是一个矩阵,但我无法在 Visual Works 上找到一种方法。我一直在关注本教程: http: //nerdysermons.blogspot.fr/2012/03/tictactoe-game-in-pharo-smalltalk.html,它适用于 Pharo 但我遇到了矩阵类型的问题还有simplebuttonmorph。谁能解释一下 Pharo 和 VisualWorks 之间的语法/包/库?谢谢你 。
问问题
1785 次
1 回答
0
以下是一个建议——实现矩阵的方法有很多。
- 将一个类定义为 Object 的子类,其中包含单元格、numberOfRows 和 numberOfColumns 的实例变量。
- 在给定行数和列数的情况下创建一个类方法来初始化矩阵 - 使单元格成为大小为行 * 列的数组
- 创建像 at:at: 和 at:at:put: 这样的方法,它们计算单元格数组的索引,如下所示:
cellNumberAt: row at: column ^(row - 1) * numberOfColumns + column at: row at: column put: value cells at: (self cellNumberAt: row at: column) put: value at: row at: column ^cells at: (self cellNumberAt: row at: column) rowAt: rowNumber | row | row := OrderedCollection new. 1 to: numberOfColumns do: [:columnNumber | row add: (self at: rowNumber at: columnNumber)]. ^row columnAt: columnNumber | column | column := OrderedCollection new. 1 to: numberOfRows do: [:rowNumber | column add: (self at: rowNumber at: columnNumber)]. ^column
我希望这会有所帮助。
于 2013-06-19T01:52:35.293 回答