2013-12-15 2 views
0

Java에서 스윙을 작게하려고하는데, 문제를 해결할 좋은 방법을 찾을 수 없습니다. 두 개의 배열이 있는데, 첫 번째는 Crate 객체입니다.한 배열의 모든 요소가 다른 배열의 모든 요소와 동일한 값을 갖고 있는지 확인합니다.

public class Crate { 
private static ImageIcon crate = new ImageIcon(Player.class.getResource("/Images/crate.jpg")); 
private int x=0; 
private int y=0; 
private static int Xdisplacement; 
private static int Ydisplacement; 
private int id; 
//getters and setters n stuff 

두 번째 배열은 Tile 객체입니다.

public class Tile { 
private static ImageIcon tile = new ImageIcon(Player.class.getResource("/Images/tile.jpg")); 
private int x=0; 
private int y=0; 
private boolean hasBox=false; 
//getters and setters n stuff 

모든 상자가 타일에 배치되었는지 확인하고 싶습니다. 어떤 타일이 어느 타일에 있고, 몇 개의 상자가 있고, 몇 개의 타일이 있고, 각 상자가 타일에 배치되어야하는지, 어떤 타일에 어떤 상자가 중요하지 않은지는 중요하지 않습니다. 게임에서, 플레이어는 걷고 상자를 움직이면 코 이드가 바뀝니다. 타일 ​​코디는 변경되지 않습니다 (도움이 될 수있는 경우). 이건 내 정지 조건이 될거야. 나무 상자가 타일 위에 놓여지면 게임은 끝납니다. 다른 루프 안에 루프를 만들고 모든 단일 개체의 모든 단일 필드를 검사하는 것이 좋은 해결책이 아닌가? 그렇게 할 수있는 다른 방법이 있습니까?

+1

[디자인 패턴 : 방문객] (http://www.oodesign.com/visitor-pattern.html)을 공부할 수있는 좋은 시간이 될 것입니다. – t0mppa

+0

감사합니다. 몇 가지 패턴 만 만난 이래로 분명히있을 것입니다 :) 문제는 빠른 해결책이 필요하다는 것입니다. 나는 그것을 잘못했으나 지금은 효과가있다. 감사합니다 every1! – user2987001

답변

1

완전한 디자인은 StackOverflow의 범위를 벗어나지 만, model-view-controller 패턴 (here)을 사용하려고합니다. 그 답은 매우 간단한 예제 게임을 포함하고 있으며 타일이 붙은 그리드에 플레이어가 참여하는보다 복잡한 게임을 인용합니다.

부록 : 이동 후 격자 거주자를 검사하는 특별한 경우에 인용 된 예제에서는 중첩 루프를 사용하여 RCModel#moveBots() 메서드의 복사본에 대해 현재 상태를 확인합니다.

관련 문제