2010-06-22 2 views

답변

3

사용 : 배열의 배열 : 당신이 효율적으로 운영하려면

(Array new: xSize) 
    at: 1 put: ((Array new: ySize) at: 1 put: aValue; at: 2 put: aValue; ...); 
    at: 2 put: ((Array new: ySize) at: 1 put: aValue; at: 2 put: aValue; ...); 
    ... 
+0

그건 내 첫 번째 생각 이었지만 더 좋은 방법이 없는지 궁금해했습니다. 그러나 대답을 주셔서 감사합니다. 그것은 그것이 받아 들일 수있는 방법으로 간주 될 수 있다는 것을 보여줍니다. –

2

에서, VisualWorks 이미지 클래스, 프로토콜 "이미지 처리"와 "비트 처리"를 연구한다. 거기에 기본 요소를 기반으로 자신의 침식/확장 작업을 작성하십시오.

4

많은 스몰 토크 구현에는 #rowAt : columnAt : (또는 간략 #at : at :)와 같은 메서드가 포함 된 일종의 Matrix 클래스가 있으며 때로는 최적화되어 있습니다.

GNU 스몰 토크에서 이것은 DhbNumericalMethods 패키지에 있습니다. 지금은 최적화되지 않았습니다.

2

여기에 Squeak의 2 차원 배열을 다루는 또 다른 방법이 있습니다 (4.2 버전 사용).

test := Matrix new: 3.  "this defines a 3 x 3 array" 
test at: 1 at: 1 put: 5. 
test at: 1 at: 2 put: 6. 
test at: 1 at: 3 put: 7. 

등 등. AFAIK는 2D 배열 만 이렇게 할 수 있으며 정사각형이어야합니다. 이것은 내 아들과 내가 스도쿠 게임을 만들기 위해 노력하고있는 프로젝트, ymmv에서 잘 작동했습니다. 건배!

+0

이것은 : 새로운 매트릭스가 끽끽 소리에 작동하지 않는다는 것을 당신이 조언하는 것을 확실히하십시오. 클래스 이름보다 사실은 "새로운"고정하기 전에 또한 dosnt 작업 온다. –