마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

퍼즐게임 소스인데요 좀봐주세요..ㅠㅠ

0 추천
public class Main extends Activity {
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button)findViewById(R.id.start)).setOnClickListener(aa);
Boutts[0] =(Button)findViewById(R.id.ab1);
Boutts[1] =(Button)findViewById(R.id.ab2);
Boutts[2] =(Button)findViewById(R.id.ab3);
Boutts[3] =(Button)findViewById(R.id.ab4);
Boutts[4] =(Button)findViewById(R.id.ab5);
Boutts[5] =(Button)findViewById(R.id.ab6);
Boutts[6] =(Button)findViewById(R.id.ab7);
Boutts[7] =(Button)findViewById(R.id.ab8);
Boutts[8] =(Button)findViewById(R.id.ab9);
 
int i;
for(i=0;i<8;i++)
Boutts[i].setOnClickListener(vd);
Boutts[i].setOnClickListener(sg);
 
 
 
}
public Button Boutts[] = new Button[9];
public View.OnClickListener sg = new View.OnClickListener() {
 
@Override
public void onClick(View v) {
Button A = (Button) v;
Button abcd = (Button)findViewById(R.id.ab9);
 
 
do_SwapButtons(A,abcd);
 
}
};
public void do_SwapButtons(Button A, Button B){
int Left = A.getLeft();
int Top = A.getTop();
int Right= A.getRight();
int Bottom= A.getBottom();
A.layout(B.getLeft(),B.getTop(),B.getRight(),B.getBottom());
B.layout(Left,Top,Right,Bottom);
 
}
public boolean vert(Button A, Button B){
return (A.getTop() == B.getTop()) && (Math.abs(A.getLeft()- B.getLeft())<140) ;
 
}
public boolean hori(Button A,Button B){
return (A.getLeft()== B.getLeft()) && (Math.abs(A.getTop()- B.getTop())<140) ;
 
}
 
public View.OnClickListener vd = new View.OnClickListener() {
 
@Override
public void onClick(View v) {
Button A = (Button) v;
Button abcd = (Button)findViewById(R.id.ab9);
 
if(vert(A,abcd) || hori(A,abcd))
do_SwapButtons(A,abcd);
 
}
};
 
public View.OnClickListener aa = new View.OnClickListener() {
 
@Override
public void onClick(View v) {
int x,y;
Random aaa = new Random();
for(y=0;y<3;y++){
for(x=0;x<3;x++){
Boutts[y*3+x].layout(x*130,y*130,x*130+130,y*130+130);
}
}
int i;
 
for(i=0;i<10;i++) sg.onClick(Boutts[aaa.nextInt(8)]);
}
};
 
 
}
 
 
 
소스 전체인데요  
퍼즐이 
1   2  3
4   5   6
7   8   " "  <----   로 맞춰졌을때   다 맞춰 졌다는 토스트를 띄우고 싶은데  어떻게해야할지 도저히 모르겟어요...ㅠㅠ
도와주세요 ㅠㅠ
dsdnisf (200 포인트) 님이 2013년 8월 22일 질문

1개의 답변

0 추천
해당 퍼즐조각에 ID를 부여하고 유저가 퍼즐하나를 옮길때마다 Check하는 함수를 만든 뒤

최종적으로 ID들의 배열이 위와 같은 순서대로 되어 있으면 완료처리를 하면 될 것 같네요.
ShakeJ (6,320 포인트) 님이 2013년 8월 22일 답변
제가 아직 초보라서... 무슨말인지 잘..... 모르겟어요..
소스를 적어주실수 있나요 ...?ㅜㅜ
느낌상 직접 짜신 소스가 아니라 퍼온 소스신거 같은데...

소스분석 부터 해보세요...어떤 로직인지...저 함수들은 어떤작동을 하는지

무작정 소스를 적어달라고 하시면...난감합니다...
안드로이드를 배운지 한달정도 됬구요... 배울려고 짜여진소스를
직접 타이핑해서 실행도해보고 어떻게돌아가는진 어느정도는 알았습니다,...

그래서 이제 추가 기능을 만들려고 하는건데요.......  
버튼 0번의 레이아웃:button[0].layout(0,0,130,130) 이위치를 어떻게 check해서 비교해서 하는지..
저는 if문만들어서 그 안에서 레이아웃 값끼리 비교를 하는건가 해서 해봤는데 자꾸 오류가 나서 안되더라구요 ..... 님의 답변을 들어도 영....감이안와서요.....  
암튼  죄송합니다.......
저도 직장에서 일을 하면서 간간히 쉴겸 답변을 다는 거라 많은 도움을 못드려 죄송합니다..

http://book.naver.com/bookdb/book_detail.nhn?bid=7174852
대신에 책 한권 추천드리겠습니다. 위에 책에 퍼즐 소스와 같은 로직들의 예제와 설명들이 잘 나와있더군요. 10장과 2장 그리고 뒷부분에도 도움되시는 내용이 많을 것 같습니다^^
네^^  감사합니다  ㅎㅎ
...