태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


기억력 게임(카드뒤집기)

2011.06.12 12:37



xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    >
      <LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="80px"
 
    >
       
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
      android:gravity="center"
      android:id="@+id/txt1"
      android:textSize="18pt"
    />
    <Button 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="한번 더 도전"
      android:gravity="center_horizontal"
      android:id="@+id/again"
     
    />
    </LinearLayout>
    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
 
    >
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c1"

            android:gravity="center"
            android:src="@drawable/cd"
            android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c2"
           
            android:gravity="center" 
             android:src="@drawable/cd"
            android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c3"
          
            android:gravity="center" 
             android:src="@drawable/cd"
            android:layout_margin="5px"
         />
   </LinearLayout>
  
       <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    >
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c4"
          
            android:gravity="center" 
             android:src="@drawable/cd"
            android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c5"
           
            android:gravity="center" 
             android:src="@drawable/cd"
             android:layout_margin="5px"
            
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c6"
           
            android:gravity="center" 
             android:src="@drawable/cd"
             android:layout_margin="5px"
         
         />
   </LinearLayout>
  
       <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    >
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c7"
           
            android:gravity="center" 
             android:src="@drawable/cd"
        android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c8"
          
            android:gravity="center" 
             android:src="@drawable/cd"
           android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c9"
          
            android:gravity="center" 
             android:src="@drawable/cd"
             android:layout_margin="5px"
         />
   </LinearLayout>
  
       <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c10"
         
            android:gravity="center" 
             android:src="@drawable/cd"
             android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c11"
          
            android:gravity="center" 
             android:src="@drawable/cd"
             android:layout_margin="5px"
         />
         <ImageButton
            android:layout_width="80px"
            android:layout_height="80px"
            android:id="@+id/c12"
          
            android:gravity="center" 
             android:src="@drawable/cd"
            android:layout_margin="5px"
         />
   </LinearLayout>
  
</LinearLayout>

// java===========================================================================

package cc.co.sody;

import java.util.ArrayList;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

public class Card extends Activity {
    static ImageButton[] cardwichi =new ImageButton[12];
    int q=0;
     Bitmap defalt;
     int ct=0;
    int u;
    TextView txt1;
     int p=78;
     Object x = null;
     Button btn;
    int exit=0;
      ArrayList<Bitmap> db;
      Bitmap[] bm;
      int count=0;;
     
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        db=new ArrayList<Bitmap>();
       
        txt1=(TextView)findViewById(R.id.txt1);
        btn=(Button)findViewById(R.id.again);
       
        btn.setVisibility(8);// 재시작버튼 숨김
       
    
       
       
        cardwichi[0]=(ImageButton)findViewById(R.id.c1);
        cardwichi[1]=(ImageButton)findViewById(R.id.c2);
        cardwichi[2]=(ImageButton)findViewById(R.id.c3);
        cardwichi[3] =(ImageButton)findViewById(R.id.c4);
        cardwichi[4] =(ImageButton)findViewById(R.id.c5);
        cardwichi[5] =(ImageButton)findViewById(R.id.c6);
        cardwichi[6] =(ImageButton)findViewById(R.id.c7);
        cardwichi[7] =(ImageButton)findViewById(R.id.c8);
        cardwichi[8] =(ImageButton)findViewById(R.id.c9);
        cardwichi[9] =(ImageButton)findViewById(R.id.c10);
        cardwichi[10] =(ImageButton)findViewById(R.id.c11);
        cardwichi[11] =(ImageButton)findViewById(R.id.c12);
       
        int[] pics = new int[7];
       
        pics[ 0 ] = R.drawable.c1;
        pics[ 1 ] = R.drawable.c2;
        pics[ 2 ] = R.drawable.c3;
        pics[ 3 ] = R.drawable.c4;
        pics[ 4 ] = R.drawable.c5;
        pics[ 5 ] = R.drawable.c6;
        pics[6] = R.drawable.cd;
      
       
        Resources res = getResources();
       
    
        BitmapDrawable bd0 = (BitmapDrawable)res.getDrawable( pics[ 0 ] );
        BitmapDrawable bd1 = (BitmapDrawable)res.getDrawable( pics[ 1 ] );
        BitmapDrawable bd2 = (BitmapDrawable)res.getDrawable( pics[ 2 ] );
        BitmapDrawable bd3 = (BitmapDrawable)res.getDrawable( pics[ 3 ] );
        BitmapDrawable bd4 = (BitmapDrawable)res.getDrawable( pics[ 4 ] );
        BitmapDrawable bd5 = (BitmapDrawable)res.getDrawable( pics[ 5 ] );
        BitmapDrawable bd6 = (BitmapDrawable)res.getDrawable( pics[ 6 ] );
       
      
        bm= new Bitmap[6];
        bm[0] = bd0.getBitmap(); 
        bm[1]  = bd1.getBitmap();
        bm[2]  = bd2.getBitmap();
        bm[3]  = bd3.getBitmap();
        bm[4]  = bd4.getBitmap();
        bm[5]  = bd5.getBitmap();
       
       
        defalt= bd6.getBitmap(); ; //디폴트 이미지
       
      
       
     
        set();
   
       
   btn.setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                set();
                exit=0;
                btn.setVisibility(8);
                txt1.setText("카드를 2개 뒤집어 같은 카드를 찾으세요");
               
            }
        });// 재시작버튼
       
       
  
        cardwichi[0].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                 //scan(0);
                Thread o = new Op(0);
                o.setDaemon(true);
                o.start();
           
            }
        });
   
      
       
            cardwichi[1].setOnClickListener(new View.OnClickListener() {
               
                public void onClick(View v) {
                    // scan(1);
                    Thread o = new Op(1);
                    o.setDaemon(true);
                    o.start();
                }
            });
        
      cardwichi[2].setOnClickListener(new View.OnClickListener() {
               
                public void onClick(View v) {
                    // scan(2);
                    Thread o = new Op(2);
                    o.setDaemon(true);
                    o.start();
                }
            });
     
      cardwichi[3].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(3);
                Thread o = new Op(3);
                o.setDaemon(true);
                o.start();
            }
        });
     
      cardwichi[4].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                 //scan(4);
                Thread o = new Op(4);
                o.setDaemon(true);
                o.start();
               
            }
        });
 
     
      cardwichi[5].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(5);
                Thread o = new Op(5);
                o.setDaemon(true);
                o.start();
            }
        });
     
      cardwichi[6].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(6);
                Thread o = new Op(6);
                o.setDaemon(true);
                o.start();
               
            }
        });
      cardwichi[7].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(7);
                Thread o = new Op(7);
                o.setDaemon(true);
                o.start();
               
            }
        });
      cardwichi[8].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(8);
                Thread o = new Op(8);
                o.setDaemon(true);
                o.start();
               
            }
        });
      cardwichi[9].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(9);
                Thread o = new Op(9);
                o.setDaemon(true);
                o.start();
               
            }
        });
      cardwichi[10].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(10);
                Thread o = new Op(10);
                o.setDaemon(true);
                o.start();
            }
        });
      cardwichi[11].setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                // scan(11);
                Thread o = new Op(11);
                o.setDaemon(true);
                o.start();
               
            }
        });

     
       
    }
   
   
    void set(){
           
            for(int i=0;i<12;i++)cardwichi[i].setImageBitmap(defalt);
                
                 
           
            for(int i=0;i<6;i++){
                for(int k=0;k<2;k++)
              db.add(bm[i]);
              }
          
      
          
         
           for(int i=0;i<12;i++){
             int b=(int)(Math.random()*db.size());
             Bitmap z=db.get(b);
            
             cardwichi[i].setTag(z);
             db.remove(b);  
           }   
    }// 카드랜덤패치

       
       
        Handler myHandler = new Handler(){
            public void handleMessage(Message msg){
              if (msg.what == 0){
                  x=cardwichi[msg.arg1].getTag();
                 
                  p=msg.arg1;   
              
              }
              if (msg.what == 1){
              
                  if(x!=cardwichi[msg.arg1].getTag()){
                      cardwichi[msg.arg1].setImageBitmap(defalt);
                      cardwichi[p].setImageBitmap(defalt);
                  } else{
                      if(++exit==6){
                         
                          txt1.setText(count/2+"번째");
                      btn.setVisibility(0);
                      }
                  }
                  p=13;
              }
            if (msg.what == 2){
           
                txt1.setText("같은카드를 선택하셨습니다 다시 선택해주세요");
            
            }
            if (msg.what == 3){
              cardwichi[msg.arg1].setImageBitmap((Bitmap) cardwichi[msg.arg1].getTag());   
             
          }
            }
          };
   
   
   

    //  스레드클래스======================
   

    class Op extends Thread{
    int a;
        public Op(int qwe){
            a=qwe;
        }
        public void run(){
          try {
                  
                   Thread.sleep(100);
                } catch (InterruptedException e) {
                   ;
                }
            pp();
            count++;
           
            Message m=new Message();
              m.what=3;
              m.arg1=a;
              myHandler.sendMessage(m);
             
           
              
              if(ct==0){
                  ct++;
                  Message m2=new Message();
                try {
                  
                   Thread.sleep(500);
                } catch (InterruptedException e) {
                   ;
                }
                  m2.what=0;
                  m2.arg1=a;
                  myHandler.sendMessage(m2);
            }
             else if(ct==1){
                ct=0;
                   try {
                      
                       Thread.sleep(500);
                    } catch (InterruptedException e) {
                       ;
                    }
                 Message m1=new Message();
                   m1.what=1;
                   m1.arg1=a;
                   myHandler.sendMessage(m1);
             }
 
       
        }
         void pp(){
        if(a==p){
            myHandler.sendEmptyMessage(2);
       
        }
        }
    }
}

Comments

What's on your mind?

댓글 입력 폼



티스토리 툴바