public boolean onTouchEvent(MotionEvent event)
    {   
    	
		final float x = event.getX();
		final float y = event.getY();
    	if ( event.getAction() == MotionEvent.ACTION_DOWN)
    	{
    		mStartX = x;
    		mStartY = y;
    		
    	}
    	if ( event.getAction() == MotionEvent.ACTION_MOVE)
    	{
        	mEndX = x;
        	mEndY = y;        	
        	controlButton();
    	}    	   
	    return movement;
    } 
    public void controlButton()
    {
    	
    	for(int i=0; i<7; i++)
    	{
    		for(int j=0; j<7; j++)
    		{
				if(mPPButton[i][j].IsSelected((int)mEndX, (int)mEndY)) // 움직임 관련부분
				{
					if(i > 0 && mPPButton[i-1][j].IsSelected((int)mStartX, (int)mStartY))
					{
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i-1][j].mState;
							mPPButton[i-1][j].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
						if(preThink()==true)
						{
							think();
						}
						else
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i-1][j].mState;
							mPPButton[i-1][j].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
					}
					else if(i < 6 && mPPButton[i+1][j].IsSelected((int)mStartX, (int)mStartY))
					{
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i+1][j].mState;
							mPPButton[i+1][j].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
						if(preThink()==true)
						{
							think();
						}
						else
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i+1][j].mState;
							mPPButton[i+1][j].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
					}
					else if(j > 0 && mPPButton[i][j-1].IsSelected((int)mStartX, (int)mStartY))
					{
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i][j-1].mState;
							mPPButton[i][j-1].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
						if(preThink()==true)
						{
							think();
						}
						else
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i][j-1].mState;
							mPPButton[i][j-1].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
					}
					else if(j < 6 && mPPButton[i][j+1].IsSelected((int)mStartX, (int)mStartY))
					{
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i][j+1].mState;
							mPPButton[i][j+1].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
						if(preThink()==true)
						{
							think();
						}
						else
						{
							int temp = mPPButton[i][j].mState;
							mPPButton[i][j].mState = mPPButton[i][j+1].mState;
							mPPButton[i][j+1].mState = temp;
							
							Vibrator vibe = (Vibrator) mMainContext.getSystemService(Context.VIBRATOR_SERVICE);
							vibe.vibrate(100);
							
						}
					}
				}   
    		}
    	}
    }
	int[] deadButtonX = new int[49];
	int[] deadButtonY = new int[49];
	int totDeadCnt = 0;
    boolean preThink()
    {
    	for(int i=0; i<49; i++)
    	{
    		deadButtonX[i] = 0;
    		deadButtonY[i] = 0;
    		totDeadCnt =0;
    	}
    	for(int i=0; i<7; i++)
    	{
    		for(int j=0;j<7; j++)
    		{
    			int tempState = mPPButton[i][j].mState;
    			int count=1;
    			for(int k=j+1;k<7; k++)
    			{    				
    				if(mPPButton[i][k].mState== tempState)
    				{
    					count++;
    				}
    				else 
    				{
    					break;
    				}
    			}
    			if(count >=3)
    			{
    				for(int deadK =0; deadK < count; deadK++)
    				{
    					boolean isInsert = true;
    					for(int tempi=0; tempi<totDeadCnt; tempi++)
    					{
	    					if( deadButtonX[tempi] == i && 
	    						deadButtonY[tempi] == j+deadK)
	    					{
	    						isInsert = false;
	    					}
    					}
    					if(isInsert == true)
    					{
	    					deadButtonX[totDeadCnt] = i;
	    					deadButtonY[totDeadCnt] = j + deadK;
	    					totDeadCnt++;   
    					}
    				}
    			}
    			
    			count =1;
    			for(int k=i+1;k<7; k++)
    			{    				
    				if(mPPButton[k][j].mState== tempState)
    				{
    					count++;
    				}
    				else 
    				{
    					break;
    				}
    			}
    			if(count >=3)
    			{
    				for(int deadK =0; deadK < count; deadK++)
    				{
    					boolean isInsert = true;
    					for(int tempi=0; tempi<totDeadCnt; tempi++)
    					{    					
	    					if( deadButtonX[tempi] == i + deadK && 
		    						deadButtonY[tempi] == j)
		    				{    					
	    						isInsert = false;	    						
		    				}
    					}
    					if(isInsert == true)
    					{
	    					deadButtonX[totDeadCnt] = i + deadK;
	    					deadButtonY[totDeadCnt] = j;
	    					totDeadCnt++;
    					}
    				}
    			}
    		}
    	}
    	if(totDeadCnt > 0)
    	{
    		return true;
    	}
    	else
    	{	
    		if(MySubActivity.slot_click_check == true){ //  아이템 사용하면
    			// 점수 안까임
    		}else if(MySubActivity.slot_click_check == false){// 아이템을 안쓴경우
    			score--;    // 잘못된 이동이면 점수 차감
    			miss = MediaPlayer.create(mMainContext, R.raw.miss);
    			miss.start();
    		}
    		return false;
    	}
    }
	터치감이 너무 안좋아서 모션이벤트를 ACTION_UP에서 ACTION_MOVE로 바꿨더니 제대로 된 이동을 했는데도(터치무브) 점수가 차감되더라구요... 너무 민감해서 그런지 이유를 도통 모르겠습니다.... ACTION_UP으로 바꾸면 액정에서 손가락을 뗐을 때 control 매서드가 작동하면서 정상적으로 점수가 차감 또는 유지가 되지만 이러면 터치감이 너무 안좋더라구요,,, 어딜 손봐야 할까요??