이미지 배열과 똑같은 크기에 배열을 만들어 카드가 이미 뽑혔는지 확인하는 용도로 사용했다.
int[] arr_cardUsed = new int[cardNum]; // 카드 사용여부 확인 배열
public void onClick(View view) {
if(count < cardNum) {
while(true) {
int i = random.nextInt(cardNum);
if (arr_cardUsed[i] == 0) {
btn_card.setImageResource(arr_cards[i]);
arr_cardUsed[i] = 1;
count++;
if(i >=0 && i <= 12) restTime = (i + 1) * 2.25;
else if(i <= 25) restTime = (i+1) * 2.25;
else if(i <= 38) restTime = (i+1) * 2.25;
else if(i <= 50) restTime = (i+1) * 2.25;
txt_count.setText(count + " / " + cardNum);
Toast.makeText(CardActivity.this, "휴식 시간 : " + ((int) restTime) + "초입니다.", Toast.LENGTH_SHORT).show();
break;
}
}
}
txt_count.setText(count + " / " + cardNum);
리셋 버튼은 카드 화면을 새로 여는 방식으로 했다.
btn_reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(CardActivity.this, CardActivity.class);
startActivity(intent);
}
});
일단 카드 수는 테스트로 13장만, 다 같은 카드로 넣었다.
한가지 문제를 발견했다...!
리셋 버튼을 누르면 새 intent
가 열리게 했는데 이 때문인지 뒤로가기를 누르면 리셋버튼 누르기 전 화면이 열리게 된다.
또 토스트 메세지도 앱을 종료한 후에 계속 나왔어서 방법을 찾아야 할 것 같다.