繁体   English   中英

如何在Smalltalk Visual Works中制作矩阵类?

[英]How to make a Matrix Class in smalltalk Visual Works?

我是Smalltalk的新手,正在尝试制作一个简单的TicTacToe游戏,我希望我的模型类成为矩阵,但我找不到在Visual Works上做到这一点的方法。 我一直在关注本教程: http : //nerdysermons.blogspot.fr/2012/03/tictactoe-game-in-pharo-smalltalk.html ,它在Pharo上工作正常,但在使用Matrix类型时遇到问题以及simplebuttonmorph。 谁能解释一下Pharo和VisualWorks之间的语法/软件包/库吗? 谢谢 。

以下是一个建议-有很多实现矩阵的方法。

  1. 将一个类定义为Object的子类,并具有单元格,numberOfRows和numberOfColumns的实例变量。
  2. 创建一个类方法以给定行数和列数来初始化矩阵-使单元格为大小为行*列的数组
  3. 创建诸如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 

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM