걍 다음에 할려고 했는데 터치까지만 구현하고 싶은 욕심에..

앞의 소스부분에서 추가된 부분만 잘 찾아볼 수 있게 기존부분 쬐끔하고 추가되는 부분은 빨간색으로적어볼께요.

[ReversiView.java]

--------->게임 초기화 

class ReversiView extends View {
                -----------

 private int page = TITLE;
    private int turn;
 public ReversiView(Context context) {
        super(context);
                 ------------

public boolean onTouchEvent(MotionEvent me) {
        int i;
                 ----------------

       if(me.getAction()==MotionEvent.ACTION_DOWN) {
            switch(page) {
            case TITLE:

            //게임 초기화

            for(i=0;i<100;i++) board[i] = 0;
                for(i=0;i<10;i++) board[i] = -1;
                for(i=1;i<9;i++) board[i*10] = -1;
                for(i=1;i<9;i++) board[i*10+9] = -1;
                for(i=0;i<10;i++) board[i+90] = -1;
                board[44] = COM;
                board[45] = PLAYER;
                board[54] = PLAYER;
                board[55] = COM;
                turn = PLAYER;
                invalidate();

                break;

    

------------>페이지 이동 제어 및 터치구현

class ReversiView extends View {
            -------------------

     private int turn;
     private int place;

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

 @Override
    public void onDraw(Canvas c) {
             -------------------

    case TURN:

          page = turn;
            invalidate();

            break;

 

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

    case REVERS:
           reverse(turn, place);

            page = CONTROL;
            invalidate();

            break;
 case CONTROL:
           //턴 교대

            if(turn==PLAYER) turn = COM;
            else turn = PLAYER;

          //페이지 이동
            page = TURN;
            invalidate();

            break;
         -------------------------

public boolean onTouchEvent(MotionEvent me) {
        int i;
        int padX = (int)(me.getX()/48);
        int padY = (int)(me.getY()/48);

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

 

                board[44] = COM;
                board[45] = PLAYER;
                board[54] = PLAYER;
                board[55] = COM;
                turn = PLAYER;
                //페이지 이동
                page = TURN;
 
                invalidate();
                break;
            case PLAYER:
             place = padX+padY*10;
             //페이지 이동
              page = REVERS;
                 invalidate();
                break;
            case COM:
             place = padX+padY*10;
             //페이지 이동
             page = REVERS;
                invalidate();
                break;
            case PASS:
                break;
            case RESULT:
                break;

   }
  }
  
  return true;

 } 
  void reverse(int myCoin, int p) {
         int yourCoin = PLAYER;
        
         if(myCoin==PLAYER) yourCoin = COM;

         board[p] = myCoin;
     }


}

이제 화면을 터치하면 게임초기화 및 터치에 따라 돌이 교대로 .....아직 로직 미구현상태라 걍 막 놔지는...

 

 

 

 

Posted by BeansLove
,