~사실 05.07에 했지만
다시한번 정리해보는시간~
int [] arr = new int[9];
생성해 안에 랜덤으로 추출한 값을 넣어줌 btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//btn.setVisibility(View.VISIBLE); ==> 숨겨진 버튼 나옴
//랜덤으로 9개 버튼이 보여지게 함
//btn.setText() -> 버튼 내용 지정
//버튼 내용 지정 후 숨었던 버튼이 보여지게 해야됨
Random rd = new Random();
int [] arr = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i] = rd.nextInt(9)+1 ;
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i--;
break;
}
}
}
for(int i =0; i<btnArray.length; i++) {
Button btn = findViewById(btnArray[i]);
btn.setVisibility(View.VISIBLE);
btn.setText(String.valueOf(arr[i]));
}
}
});
int clickNum 은 클릭되어진 숫자가 담긴 텍스트 int clickNum = Integer.parseInt(btn.getText().toString());
전역변수로 선언한 int posNum
숫자의 순서대로 클릭하면 버튼이 사라지게 하려면 => 버튼 안에 담긴 clickNum과 내가 클릭한 posNum이 같을 때 조건을 주면 됨
화면당 1~9, 10~18, 19~27, 28~36, 37~45 이 나오게 되어야함
버튼 숫자가 바뀌어야할 시점 9,18,27,36,45
바뀌어야할 시점은 클릭한 숫자를기억하는 posNum을 9로 나눴을 때 0이어야 됨
@Override
public void onClick(View view) {
Button btn = findViewById(view.getId());
int clickNum = Integer.parseInt(btn.getText().toString());
//순서대로 클릭했을때만 없어지도록
if (clickNum==posNum){
btn.setVisibility(View.INVISIBLE);
posNum++;
}else {
Toast.makeText(MainActivity.this, "순서대로 클릭해주세요.", Toast.LENGTH_SHORT).show();
}
//마지막 번호클릭시 다음 랜덤 숫자 버튼으로 출력
//1~9, 10~18, 19~27, 28~36, 37~45 바뀌어야할 시점 9,18,27,36,45
if ((posNum-1)%9==0){ //바뀌어야할 시점은 클릭한 숫자를기억하는 posNum을 9로 나눴을 때 0이어야 됨
if((posNum-1)==45){
for(int i =0; i<btnArray.length; i++) {
btn = findViewById(btnArray[i]);
btn.setVisibility(View.INVISIBLE);
}
Toast.makeText(MainActivity.this, "게임이 끝났습니다", Toast.LENGTH_SHORT).show();
} else {
Random rd = new Random();
int [] arr = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i] = rd.nextInt(9)+posNum ;
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i--;
break;
}
}
}
for(int i =0; i<btnArray.length; i++) {
btn = findViewById(btnArray[i]);
btn.setVisibility(View.VISIBLE);
btn.setText(String.valueOf(arr[i]));
}
}
}
}
posNum은 첨 시작이 1이기때문에 45를 클릭하면 46이 되기때문에 posNum-1해줌