2014-10-02 2 views
2

스몰 토크에서 간단한 게임을 만드는 작업이 있습니다. 스몰 토크는 제가 거의 익숙하지 않은 언어입니다. 이 게임은 Marble Solitaire이며 각 모서리에서 2x2 정사각형으로 조각이 제거 된 7x7 매트릭스가 포함됩니다.매트릭스 요소 반복 및 스몰 토크에서 참을 반환 할 때 중지

각 요소에 대해 유효 이동이 있는지 여부를 확인하는 메서드가 있습니다.이 메서드를 매트릭스의 각 요소에 대해 호출하려고합니다. 유효한 이동이 발견되면 메서드는 true를 반환하고 반복 프로세스가 중지되고 플레이어는 계속 재생할 수 있습니다.

매트릭스 생성 코드는 다음과 같습니다. 나는 요소의 클래스를 만드는 게 좋을 것보기의 건축 관점에서

pegs := Matrix 
      new: n 
      tabulate: [:i :j | self newCellAt: i at: j] 

답변

2

,의는 BoardPiece 그것을 위해 #hasValidMove 방법을 정의를 가정 해 봅시다. 그럼 당신은 할 수 있습니다 :

elements anySatisfy: #hasValidMove 

그렇지 않으면 당신은 매트릭스와 같은 작업을 수행 할 수 있습니다

pegs anySatisfy: [ :peg | self validMoveAvailableFor: peg ] 

을 #validMoveAvailableFor 행렬에서 값을 받아 유효한 이동이있는 경우 true를 반환한다고 가정.

elements anySatisfy: #hasValidMove 정확히 elements anySatisfy: [ :el | el hasValidMove ]

과 동일 함을 유의하시기 바랍니다