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

카드게임이미지를 shuffle로 섞는방법좀 알려주세요

+1 추천
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(new CardGame(this));
 }
}

------------------------------------------------------------------

package com.example.test2;

public class Card {
 public static final int Card_SHOW = 0;
 public static final int Card_CLOSE = 1;
 public static final int Card_PLAYEROPEN = 2;
 public static final int Card_MATCHED = 3;
 public static final int Card_IMG1 = 1;
 public static final int Card_IMG2 = 2;
 public static final int Card_IMG3 = 3;
 public static final int Card_IMG4 = 4;
 public static final int Card_IMG5 = 5;
 public static final int Card_IMG6 = 6;
 public int m_Card;
 public int m_state;
  
 public Card(int _Card){
   m_state = Card_SHOW;
   m_Card = _Card;
 }
}

-------------------------------------------------------------

package com.example.test2;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.view.View;

public class CardGame extends View {
 
 public static final int STATE_READY = 0;
 public static final int STATE_GAME = 1;  
 public static final int STATE_END = 2;
 private int m_state = STATE_READY;   
 Bitmap m_BackGround;
 Bitmap m_Card_Backside;
 Bitmap m_Card1;
 Bitmap m_Card2;
 Bitmap m_Card3;
 Bitmap m_Card4;
 Bitmap m_Card5;
 Bitmap m_Card6;
 Card m_Shuffle[][];
 public CardGame(Context context) {
  super(context);
  m_BackGround = BitmapFactory.decodeResource(getResources(), R.drawable.background);
  m_Card_Backside = BitmapFactory.decodeResource(getResources(), R.drawable.cardback);
  m_Card1 = BitmapFactory.decodeResource(getResources(), R.drawable.a1);
  m_Card2 = BitmapFactory.decodeResource(getResources(), R.drawable.a2);
  m_Card3 = BitmapFactory.decodeResource(getResources(), R.drawable.a3);
  m_Card4 = BitmapFactory.decodeResource(getResources(), R.drawable.a4);
  m_Card5 = BitmapFactory.decodeResource(getResources(), R.drawable.a5);
  m_Card6 = BitmapFactory.decodeResource(getResources(), R.drawable.a6);
  m_Shuffle = new Card[3][4];
  m_Shuffle[0][0] = new Card(Card.Card_IMG1);
  SetCardShuffle();
 }
 public void onDraw(Canvas canvas) {
  canvas.drawBitmap(m_BackGround, 0, 0, null);
  for(int y = 0; y < 4; y++){
   for(int x = 0; x < 3; x++)
    if(m_Shuffle[x][y].m_state == Card.Card_SHOW ||
    m_Shuffle[x][y].m_state == Card.Card_PLAYEROPEN ||
    m_Shuffle[x][y].m_state == Card.Card_MATCHED) {
     
    if(m_Shuffle[x][y].m_Card == Card.Card_IMG1)
     canvas.drawBitmap(m_Card1, 35 + x*90, 90 + y*80, null);
    else if(m_Shuffle[x][y].m_Card == Card.Card_IMG2)
     canvas.drawBitmap(m_Card2, 35 + x*90, 90 + y*80, null);
    else if(m_Shuffle[x][y].m_Card == Card.Card_IMG3)
     canvas.drawBitmap(m_Card3, 35 + x*90, 90 + y*80, null);
    else if(m_Shuffle[x][y].m_Card == Card.Card_IMG4)
     canvas.drawBitmap(m_Card4, 35 + x*90, 90 + y*80, null);
    else if(m_Shuffle[x][y].m_Card == Card.Card_IMG5)
     canvas.drawBitmap(m_Card5, 35 + x*90, 90 + y*80, null);
    else if(m_Shuffle[x][y].m_Card == Card.Card_IMG6)
     canvas.drawBitmap(m_Card6, 35 + x*90, 90 + y*80, null);
    }
    else
     canvas.drawBitmap(m_Card_Backside, 35 + x*90, 90 + y*80, null);
  }
 }
 public void SetCardShuffle() {  
    m_Shuffle[0][0] = new Card(Card.Card_IMG1);
    m_Shuffle[0][1] = new Card(Card.Card_IMG2);
    m_Shuffle[0][2] = new Card(Card.Card_IMG3);
    m_Shuffle[0][3] = new Card(Card.Card_IMG4);
    m_Shuffle[1][0] = new Card(Card.Card_IMG5);
    m_Shuffle[1][1] = new Card(Card.Card_IMG6);
    m_Shuffle[1][2] = new Card(Card.Card_IMG6);
    m_Shuffle[1][3] = new Card(Card.Card_IMG5);
    m_Shuffle[2][0] = new Card(Card.Card_IMG4);
    m_Shuffle[2][1] = new Card(Card.Card_IMG3);
    m_Shuffle[2][2] = new Card(Card.Card_IMG2);
    m_Shuffle[2][3] = new Card(Card.Card_IMG1);
 }
}

 

여기서 public void SetCardShuffle 이부분에 카드섞는코드를 적는거 같은대 멀 어찌 적어야 하는거죠;

예재를 보고 했는대 셔플로 카드를 섞는 방법은 안나와잇고 그냥 위치를 정해주는것만 나와있네요; 인터넷에서 찾아보면서 해봤는대 실행은 되고 섞는건 안되네요;

카드섞는 방법 shuffle말고 Random이라도 가능하면 알려주세요.
사계절왈츠 (130 포인트) 님이 2013년 10월 9일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...