zoukankan      html  css  js  c++  java
  • Android消除不同颜色方块小游戏

    package com.example.xxr.game3;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by xxr on 2018/3/10.
     */
    
    public class ActivityCollector {
        public static List<Activity> activities=new ArrayList<>();
        public static void addActivity(Activity activity){
            activities.add(activity);
    
        }
        public static void removeActivity(Activity activity){
            activities.remove(activity);
        }
        public static void finishAll(){
            for(Activity activity:activities){
                if(!activity.isFinishing()){
                    activity.finish();
                }
            }
        }
    }
    package com.example.xxr.game3;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    
    /**
     * Created by xxr on 2018/3/10.
     */
    
    public class BasicActivity extends AppCompatActivity {
        protected void  onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            ActivityCollector.addActivity(this);
        }
        protected void onDestroy(){
            super.onDestroy();
            ActivityCollector.removeActivity(this);
        }
    }
    package com.example.xxr.game3;
    
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class Main2Activity extends BasicActivity {
        Button start,back,how;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
    
            start=(Button)findViewById(R.id.begin);
            back=(Button)findViewById(R.id.back);
            how=(Button)findViewById(R.id.how);
            start.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(Main2Activity.this,Main3Activity.class);
                    startActivity(intent);
                }
            });
            back.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    System.exit(0);
                }
            });
            how.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    AlertDialog.Builder howhow=new AlertDialog.Builder(Main2Activity.this);
                    howhow.create();
                    howhow.setIcon(R.drawable.icon);
                    howhow.setMessage("                  **游戏规则**:
       每个可以移动的颜色块下面有其可以移动的次数的数字,根据下面的数字,使界面最终变成一种颜色的色块,可移动色块不能移动到另一个可移动色块上,如果可移动色块数为零且没使界面统一颜色,则为失败,否则胜利!
            祝你好运!!!!");
                    howhow.setPositiveButton("确定",new DialogInterface.OnClickListener(){
                        public void onClick(DialogInterface dialog,int which){
                            Toast.makeText(Main2Activity.this,"ok",Toast.LENGTH_SHORT).show();
    
                        }
                    });
                    howhow.show();
    
                }
            });
    
        }
    }
    package com.example.xxr.game3;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class Main3Activity extends BasicActivity {
        Button button;
    
        Button[] buttons=new Button[9];
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main3);
            button=(Button)findViewById(R.id.backfinally);
            button.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    ActivityCollector.finishAll();
                }
            });
            buttons[0]=(Button)findViewById(R.id.b1);
            buttons[1]=(Button)findViewById(R.id.b2);
            buttons[3]=(Button)findViewById(R.id.b4);
            buttons[0].setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(Main3Activity.this,MainActivity.class);
                    Toast.makeText(Main3Activity.this,"Ready....Go!",Toast.LENGTH_SHORT).show();
                    startActivity(intent);
    
                }
            } );
            buttons[1].setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(Main3Activity.this,Main4Activity.class);
                    Toast.makeText(Main3Activity.this,"Ready....Go!",Toast.LENGTH_SHORT).show();
                    startActivity(intent);
    
                }
            } );
            buttons[3].setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(Main3Activity.this,Main5Activity.class);
                    Toast.makeText(Main3Activity.this,"Ready....Go!",Toast.LENGTH_SHORT).show();
                    startActivity(intent);
    
                }
            });
        }
    }
    package com.example.xxr.game3;
    
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.Button;
    import android.widget.GridLayout;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
      public class Main4Activity extends BasicActivity {
          Button button;
        GridLayout glayout;
        int x, y, currentx, currenty;
        int[] num=new int[11];
        ImageView[] group = new ImageView[11];
        TextView[] text = new TextView[11];
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main4);
            button=(Button)findViewById(R.id.back2);
            button.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(Main4Activity.this,Main3Activity.class);
                    startActivity(intent);
                }
            });
            glayout=(GridLayout)findViewById(R.id.mylayout);
            text[0] = (TextView) findViewById(R.id.t1a);
            text[1] = (TextView) findViewById(R.id.t2a);
            text[2] = (TextView) findViewById(R.id.t3a);
            text[3] = (TextView) findViewById(R.id.t4a);
    
            text[4] = (TextView) findViewById(R.id.t5a);
            text[5] = (TextView) findViewById(R.id.t6a);
            text[6] = (TextView) findViewById(R.id.t7a);
    
            text[7] = (TextView) findViewById(R.id.t8a);
            text[8] = (TextView) findViewById(R.id.t9a);
            text[9] = (TextView) findViewById(R.id.t10a);
            text[10] = (TextView) findViewById(R.id.t11a);
    
            group[0] = (ImageView) findViewById(R.id.i1a);
            group[1] = (ImageView) findViewById(R.id.i2a);
            group[2] = (ImageView) findViewById(R.id.i3a);
            group[3] = (ImageView) findViewById(R.id.i4a);
    
            group[4] = (ImageView) findViewById(R.id.i5a);
            group[5] = (ImageView) findViewById(R.id.i6a);
            group[6] = (ImageView) findViewById(R.id.i7a);
    
            group[7] = (ImageView) findViewById(R.id.i8a);
            group[8] = (ImageView) findViewById(R.id.i9a);
            group[9] = (ImageView) findViewById(R.id.i10a);
            group[10] = (ImageView) findViewById(R.id.i11a);
    
            for(int i=0;i<11;i++){
                num[i]=0;
            }
            num[1]=2;num[4]=1;num[6]=1;num[3]=1;num[10]=3;num[9]=2;
    
    
            glayout.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent event) {
    
    
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            x = (int) event.getX();
                            y = (int) event.getY();
                            Log.e("a", Integer.toString(x) + "aa" + Integer.toString(y));
                            // return true;
                            break;
                        case MotionEvent.ACTION_UP:
                            currentx = (int) event.getX();
                            currenty = (int) event.getY();
                            Log.e("b", Integer.toString(currentx) + "aaa" + Integer.toString(currenty));
    
    
                            //不知道此处的用法是否正确
                            if (x - currentx > 0 && Math.abs(y - currenty) < 100) {
                                Log.e("a", "left");
                                int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                int n = (int) (x / (view.getWidth() / 3));
                                if (num[m] > 0 && n != 0&&num[m-1]==0) {
                                    num[m - 1] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("                       0                 ");
                                    text[m - 1].setText("                                      " + num[m - 1]);
                                    group[m - 1].setImageDrawable(group[m].getDrawable());
    
                                }
                            } else if (x - currentx < 0 && Math.abs(y - currenty) < 100) {
                                int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                int n = (int) (x / (view.getWidth() / 3));
                                if (num[m] > 0 && n != 2&&num[m+1]==0) {
                                    num[m + 1] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("                       0                 ");
                                    text[m + 1].setText("                                     " + num[m + 1]);
                                    group[m + 1].setImageDrawable(group[m].getDrawable());
                                }
                            } else if (y - currenty > 0 && Math.abs(x - currentx) < 100) {
                                int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                int n = (int) (y / (view.getHeight() / 4));
                                if (num[m] > 0 && n != 0&&num[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))]==0) {
                                    num[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("                      0                 ");
                                    text[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))].setText("                                     " + num[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))]);
                                    group[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))].setImageDrawable(group[m].getDrawable());
                                }
                            } else if (y - currenty < 0 && Math.abs(x - currentx) < 100) {
                                int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                int n = (int) (y / (view.getHeight() / 4));
                                if (num[m] > 0 && n != 3&& num[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))]==0) {
                                    num[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("                      0                 ");
                                    text[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))].setText("                                     " + num[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))]);
                                    group[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))].setImageDrawable(group[m].getDrawable());
                                }
                            } else {
                                Toast.makeText(Main4Activity.this, "try again", Toast.LENGTH_SHORT).show();
    
                            }
    
    
                    }
                    for(int i=0;i<11;i++){
                        if(num[i]!=0){
                            break;
                        }
                        if(i==10){
                            isWin();
                        }
                    }
    
                    return true;
                }
            });
        }
    
          public void isWin(){
              for(int i=0;i<11;i++){
                  if(!(group[i].getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.c).getConstantState()))){
                      AlertDialog.Builder alert=new AlertDialog.Builder(this);
                      alert.create();
                      alert.setTitle("Game");
                      alert.setIcon(R.drawable.fall);
                      alert.setCancelable(false);
                      alert.setMessage("对不起,你输了!
    你想要重新来过吗?亲!");
                      alert.setPositiveButton("恩",new DialogInterface.OnClickListener(){
                          public void onClick(DialogInterface dialog,int which){
    
                              Intent intent =new Intent(Main4Activity.this,Main4Activity.class);
                              startActivity(intent);
                          }
    
                      });
                      alert.setNegativeButton("算了吧",new DialogInterface.OnClickListener(){
                          public void onClick(DialogInterface dialog,int which){
                              Intent intent=new Intent(Main4Activity.this,Main3Activity.class);
                              startActivity(intent);
                          }
                      });
                      alert.show();
                      break;
                  }
    
    
    
    
    
                  if(i==10&&group[i].getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.c).getConstantState())){
                      AlertDialog.Builder alert=new AlertDialog.Builder(this);
                      alert.create();
                      alert.setTitle("Game");
                      alert.setIcon(R.drawable.win);
                      alert.setCancelable(false);
                      alert.setMessage("恭喜你顺利过关!!
    你想要进入下一关吗?亲!");
                      alert.setPositiveButton("恩",new DialogInterface.OnClickListener(){
                          public void onClick(DialogInterface dialog,int which){
    
                              Intent intent =new Intent(Main4Activity.this,Main5Activity.class);
                              startActivity(intent);
                          }
    
                      });
                      alert.setNegativeButton("算了吧",new DialogInterface.OnClickListener(){
                          public void onClick(DialogInterface dialog,int which){
                              Intent intent=new Intent(Main4Activity.this,Main3Activity.class);
                              startActivity(intent);
                          }
                      });
                      alert.show();
                  }
              }
        }
    
    
    
    
    
    
    
    
    
    }
    package com.example.xxr.game3;
    
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.Button;
    import android.widget.GridLayout;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class Main5Activity extends BasicActivity {
        Button button;
        GridLayout glayout;
        int x, y, currentx, currenty;
        int[] num = new int[41];
        ImageView[] group = new ImageView[41];
        TextView[] text = new TextView[41];
        music c;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main5);
            c=new music(Main5Activity.this);
            button=(Button)findViewById(R.id.back3);
            button.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(Main5Activity.this,Main3Activity.class);
                    startActivity(intent);
                }
            });
            glayout = (GridLayout) findViewById(R.id.mylayoutmm);
            text[0] = (TextView) findViewById(R.id.t1b);
            text[1] = (TextView) findViewById(R.id.t2b);
            text[2] = (TextView) findViewById(R.id.t3b);
            text[3] = (TextView) findViewById(R.id.t4b);
    
            text[4] = (TextView) findViewById(R.id.t5b);
            text[5] = (TextView) findViewById(R.id.t6b);
            text[6] = (TextView) findViewById(R.id.t7b);
    
            text[7] = (TextView) findViewById(R.id.t8b);
            text[8] = (TextView) findViewById(R.id.t9b);
            text[9] = (TextView) findViewById(R.id.t10b);
            text[10] = (TextView) findViewById(R.id.t11b);
            text[11] = (TextView) findViewById(R.id.t12b);
            text[12] = (TextView) findViewById(R.id.t13b);
            text[13] = (TextView) findViewById(R.id.t14b);
            text[14] = (TextView) findViewById(R.id.t15b);
            text[15] = (TextView) findViewById(R.id.t16b);
    
            text[16] = (TextView) findViewById(R.id.t17b);
            text[17] = (TextView) findViewById(R.id.t18b);
            text[18] = (TextView) findViewById(R.id.t19b);
    
            text[19] = (TextView) findViewById(R.id.t20b);
            text[20] = (TextView) findViewById(R.id.t21b);
            text[21] = (TextView) findViewById(R.id.t22b);
            text[22] = (TextView) findViewById(R.id.t23b);
            text[23] = (TextView) findViewById(R.id.t24b);
            text[24] = (TextView) findViewById(R.id.t25b);
            text[25] = (TextView) findViewById(R.id.t26b);
            text[26] = (TextView) findViewById(R.id.t27b);
            text[27] = (TextView) findViewById(R.id.t28b);
    
            text[28] = (TextView) findViewById(R.id.t29b);
            text[29] = (TextView) findViewById(R.id.t30b);
            text[30] = (TextView) findViewById(R.id.t31b);
    
            text[31] = (TextView) findViewById(R.id.t32b);
            text[32] = (TextView) findViewById(R.id.t33b);
            text[33] = (TextView) findViewById(R.id.t34b);
            text[34] = (TextView) findViewById(R.id.t35b);
            text[35] = (TextView) findViewById(R.id.t36b);
            text[36] = (TextView) findViewById(R.id.t37b);
            text[37] = (TextView) findViewById(R.id.t38b);
            text[38] = (TextView) findViewById(R.id.t39b);
            text[39] = (TextView) findViewById(R.id.t40b);
    
            text[40] = (TextView) findViewById(R.id.t41b);
    
    
            group[0] = (ImageView) findViewById(R.id.i1b);
            group[1] = (ImageView) findViewById(R.id.i2b);
            group[2] = (ImageView) findViewById(R.id.i3b);
            group[3] = (ImageView) findViewById(R.id.i4b);
    
            group[4] = (ImageView) findViewById(R.id.i5b);
            group[5] = (ImageView) findViewById(R.id.i6b);
            group[6] = (ImageView) findViewById(R.id.i7b);
    
            group[7] = (ImageView) findViewById(R.id.i8b);
            group[8] = (ImageView) findViewById(R.id.i9b);
            group[9] = (ImageView) findViewById(R.id.i10b);
            group[10] = (ImageView) findViewById(R.id.i11b);
            group[11] = (ImageView) findViewById(R.id.i12b);
            group[12] = (ImageView) findViewById(R.id.i13b);
            group[13] = (ImageView) findViewById(R.id.i14b);
            group[14] = (ImageView) findViewById(R.id.i15b);
            group[15] = (ImageView) findViewById(R.id.i16b);
    
            group[16] = (ImageView) findViewById(R.id.i17b);
            group[17] = (ImageView) findViewById(R.id.i18b);
            group[18] = (ImageView) findViewById(R.id.i19b);
    
            group[19] = (ImageView) findViewById(R.id.i20b);
            group[20] = (ImageView) findViewById(R.id.i21b);
            group[21] = (ImageView) findViewById(R.id.i22b);
            group[22] = (ImageView) findViewById(R.id.i23b);
            group[23] = (ImageView) findViewById(R.id.i24b);
            group[24] = (ImageView) findViewById(R.id.i25b);
            group[25] = (ImageView) findViewById(R.id.i26b);
            group[26] = (ImageView) findViewById(R.id.i27b);
            group[27] = (ImageView) findViewById(R.id.i28b);
    
            group[28] = (ImageView) findViewById(R.id.i29b);
            group[29] = (ImageView) findViewById(R.id.i30b);
            group[30] = (ImageView) findViewById(R.id.i31b);
    
            group[31] = (ImageView) findViewById(R.id.i32b);
            group[32] = (ImageView) findViewById(R.id.i33b);
            group[33] = (ImageView) findViewById(R.id.i34b);
            group[34] = (ImageView) findViewById(R.id.i35b);
            group[35] = (ImageView) findViewById(R.id.i36b);
            group[36] = (ImageView) findViewById(R.id.i37b);
            group[37] = (ImageView) findViewById(R.id.i38b);
            group[38] = (ImageView) findViewById(R.id.i39b);
            group[39] = (ImageView) findViewById(R.id.i40b);
    
            group[40] = (ImageView) findViewById(R.id.i41b);
    
    
            for (int i = 0; i < 41; i++) {
                num[i] = 0;
            }
            num[7] = 3;
            num[14] = 2;
            num[20] = 2;
            num[25] = 2;
            num[27] = 2;
            num[29] = 2;
            num[34] = 4;
            num[33] = 1;
    
    
            glayout.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent event) {
    
    
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            x = (int) event.getX();
                            y = (int) event.getY();
                            Log.e("a", Integer.toString(x) + "aa" + Integer.toString(y));
                            // return true;
                            break;
                        case MotionEvent.ACTION_UP:
                            currentx = (int) event.getX();
                            currenty = (int) event.getY();
                            Log.e("b", Integer.toString(currentx) + "aaa" + Integer.toString(currenty));
    
    
                            //不知道此处的用法是否正确
                            if (x - currentx > 0 && Math.abs(y - currenty) < 100) {
                                Log.e("a", "left");
                                int m = (int) (y / (view.getHeight() / 7)) * 6 + (int) (x / (view.getWidth() / 6));
                                int n = (int) (x / (view.getWidth() / 6));
                                if (num[m] > 0 && n != 0 && num[m - 1] == 0) {
                                    num[m - 1] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("         0       ");
                                    text[m - 1].setText("          " + num[m - 1] + "        ");
                                    group[m - 1].setImageDrawable(group[m].getDrawable());
    
                                }
                            } else if (x - currentx < 0 && Math.abs(y - currenty) < 100) {
                                int m = (int) (y / (view.getHeight() / 7)) * 6 + (int) (x / (view.getWidth() / 6));
                                int n = (int) (x / (view.getWidth() / 6));
                                if (num[m] > 0 && n != 5 && num[m + 1] == 0) {
                                    num[m + 1] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("         0       ");
                                    text[m + 1].setText("         " + num[m + 1] + "        ");
                                    group[m + 1].setImageDrawable(group[m].getDrawable());
                                }
                            } else if (y - currenty > 0 && Math.abs(x - currentx) < 100) {
                                int m = (int) (y / (view.getHeight() / 7)) * 6 + (int) (x / (view.getWidth() / 6));
                                int n = (int) (y / (view.getHeight() / 7));
                                if (num[m] > 0 && n != 0 && num[(int) (y / (view.getHeight() / 7) - 1) * 6 + (int) (x / (view.getWidth() / 6))] == 0) {
                                    num[(int) (y / (view.getHeight() / 7) - 1) * 6 + (int) (x / (view.getWidth() / 6))] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("         0       ");
                                    text[(int) (y / (view.getHeight() / 7) - 1) * 6 + (int) (x / (view.getWidth() / 6))].setText("         " + num[(int) (y / (view.getHeight() / 7) - 1) * 6 + (int) (x / (view.getWidth() / 6))] + "        ");
                                    group[(int) (y / (view.getHeight() / 7) - 1) * 6 + (int) (x / (view.getWidth() / 6))].setImageDrawable(group[m].getDrawable());
                                }
                            } else if (y - currenty < 0 && Math.abs(x - currentx) < 100) {
                                int m = (int) (y / (view.getHeight() / 7)) * 6 + (int) (x / (view.getWidth() / 6));
                                int n = (int) (y / (view.getHeight() / 7));
                                if (num[m] > 0 && n != 6 && num[(int) (y / (view.getHeight() / 7) + 1) * 6 + (int) (x / (view.getWidth() / 6))] == 0) {
                                    num[(int) (y / (view.getHeight() / 7) + 1) * 6 + (int) (x / (view.getWidth() / 6))] = num[m] - 1;
                                    num[m] = 0;
                                    text[m].setText("         0       ");
                                    text[(int) (y / (view.getHeight() / 7) + 1) * 6 + (int) (x / (view.getWidth() / 6))].setText("         " + num[(int) (y / (view.getHeight() / 7) + 1) * 6 + (int) (x / (view.getWidth() / 6))] + "        ");
                                    group[(int) (y / (view.getHeight() / 7) + 1) * 6 + (int) (x / (view.getWidth() / 6))].setImageDrawable(group[m].getDrawable());
                                }
                            } else {
                                Toast.makeText(Main5Activity.this, "try again", Toast.LENGTH_SHORT).show();
                                ;
                            }
    
    
                    }
                    for(int i=0;i<41;i++){
                        if(num[i]!=0){
                            break;
                        }
                        if(i==40){
                            isWin();
                        }
                    }
                    return true;
                }
            });
        }
    
        public void isWin() {
            for (int i = 0; i < 41; i++) {
                if (!(group[i].getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.nbl).getConstantState()))) {
                    AlertDialog.Builder alert = new AlertDialog.Builder(this);
                    alert.create();
                    alert.setTitle("Game");
                    alert.setIcon(R.drawable.fall);
                    alert.setCancelable(false);
                    alert.setMessage("对不起,你输了!
    你想要重新来过吗?亲!");
                    alert.setPositiveButton("恩", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
    
                            Intent intent = new Intent(Main5Activity.this, Main5Activity.class);
                            startActivity(intent);
                        }
    
                    });
                    alert.setNegativeButton("算了吧", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            Intent intent = new Intent(Main5Activity.this, Main3Activity.class);
                            startActivity(intent);
                        }
                    });
                    alert.show();
                    break;
                }
    
    
                if (i == 40&& group[i].getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.nbl).getConstantState())) {
                    AlertDialog.Builder alert = new AlertDialog.Builder(this);
                    alert.create();
                    alert.setTitle("Game");
                    alert.setIcon(R.drawable.win);
                    alert.setCancelable(false);
                    alert.setMessage("恭喜你顺利过关!!
    你想要进入下一关吗?亲!");
                    alert.setPositiveButton("恩", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
    
                            Intent intent = new Intent(Main5Activity.this, Main3Activity.class);
                            startActivity(intent);
                        }
    
                    });
                    alert.setNegativeButton("算了吧", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            Intent intent = new Intent(Main5Activity.this, Main3Activity.class);
                            startActivity(intent);
                        }
                    });
                    alert.show();
                }
            }
        }
        public void onStop(){
            c.pause();
            super.onStop();
        }
    }
    package com.example.xxr.game3;
    
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.Button;
    import android.widget.GridLayout;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends BasicActivity {
    
       GridLayout glayout;
       Button button;
        int x, y, currentx, currenty;
      int[] num=new int[11];
        ImageView[] group = new ImageView[11];
        TextView[] text = new TextView[11];
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Intent intent=new Intent(MainActivity.this,MusicService.class);
             startService(intent);
    
    
            glayout=(GridLayout)findViewById(R.id.mylayout);
            text[0] = (TextView) findViewById(R.id.t1);
            text[1] = (TextView) findViewById(R.id.t2);
            text[2] = (TextView) findViewById(R.id.t3);
            text[3] = (TextView) findViewById(R.id.t4);
    
            text[4] = (TextView) findViewById(R.id.t5);
            text[5] = (TextView) findViewById(R.id.t6);
            text[6] = (TextView) findViewById(R.id.t7);
    
            text[7] = (TextView) findViewById(R.id.t8);
            text[8] = (TextView) findViewById(R.id.t9);
            text[9] = (TextView) findViewById(R.id.t10);
            text[10] = (TextView) findViewById(R.id.t11);
    
            group[0] = (ImageView) findViewById(R.id.i1);
            group[1] = (ImageView) findViewById(R.id.i2);
            group[2] = (ImageView) findViewById(R.id.i3);
            group[3] = (ImageView) findViewById(R.id.i4);
    
            group[4] = (ImageView) findViewById(R.id.i5);
            group[5] = (ImageView) findViewById(R.id.i6);
            group[6] = (ImageView) findViewById(R.id.i7);
    
            group[7] = (ImageView) findViewById(R.id.i8);
            group[8] = (ImageView) findViewById(R.id.i9);
            group[9] = (ImageView) findViewById(R.id.i10);
            group[10] = (ImageView) findViewById(R.id.i11);
    
            for(int i=0;i<11;i++){
                num[i]=0;
            }
            num[1]=1;num[7]=2;num[10]=3;
            button=(Button)findViewById(R.id.back1);
            button.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    Intent intent=new Intent(MainActivity.this,Main3Activity.class);
                    startActivity(intent);
                }
            });
    
    
                glayout.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View view, MotionEvent event) {
    
    
                        switch (event.getAction()) {
                            case MotionEvent.ACTION_DOWN:
                                x = (int) event.getX();
                                y = (int) event.getY();
                                Log.e("a", Integer.toString(x) + "aa" + Integer.toString(y));
                                // return true;
                                break;
                            case MotionEvent.ACTION_UP:
                                currentx = (int) event.getX();
                                currenty = (int) event.getY();
                                Log.e("b", Integer.toString(currentx) + "aaa" + Integer.toString(currenty));
    
    
                                //不知道此处的用法是否正确
                                if (x - currentx > 0 && Math.abs(y - currenty) < 100) {
                                    Log.e("a", "left");
                                    int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                    int n = (int) (x / (view.getWidth() / 3));
                                    if (num[m] > 0 && n != 0&&num[m - 1]==0) {
                                        num[m - 1] = num[m] - 1;
                                        num[m] = 0;
                                        text[m].setText("                       0                 ");
                                        text[m - 1].setText("                                      " + num[m - 1]);
                                        group[m - 1].setImageDrawable(group[m].getDrawable());
    
                                    }
                                } else if (x - currentx < 0 && Math.abs(y - currenty) < 100) {
                                    int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                    int n = (int) (x / (view.getWidth() / 3));
                                    if (num[m] > 0 && n != 2&&num[m + 1] ==0) {
                                        num[m + 1] = num[m] - 1;
                                        num[m] = 0;
                                        text[m].setText("                       0                 ");
                                        text[m + 1].setText("                                     " + num[m + 1]);
                                        group[m + 1].setImageDrawable(group[m].getDrawable());
                                    }
                                } else if (y - currenty > 0 && Math.abs(x - currentx) < 100) {
                                    int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                    int n = (int) (y / (view.getHeight() / 4));
                                    if (num[m] > 0 && n != 0&& num[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))]==0) {
                                        num[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))] = num[m] - 1;
                                        num[m] = 0;
                                        text[m].setText("                      0                 ");
                                        text[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))].setText("                                     " + num[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))]);
                                        group[(int) (y / (view.getHeight() / 4) - 1) * 3 + (int) (x / (view.getWidth() / 3))].setImageDrawable(group[m].getDrawable());
                                    }
                                } else if (y - currenty < 0 && Math.abs(x - currentx) < 100) {
                                    int m = (int) (y / (view.getHeight() / 4)) * 3 + (int) (x / (view.getWidth() / 3));
                                    int n = (int) (y / (view.getHeight() / 4));
                                    if (num[m] > 0 && n != 3&& num[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))]==0) {
                                        num[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))] = num[m] - 1;
                                        num[m] = 0;
                                        text[m].setText("                      0                 ");
                                        text[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))].setText("                                     " + num[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))]);
                                        group[(int) (y / (view.getHeight() / 4) + 1) * 3 + (int) (x / (view.getWidth() / 3))].setImageDrawable(group[m].getDrawable());
                                    }
                                } else {
                                    Toast.makeText(MainActivity.this, "try again", Toast.LENGTH_SHORT).show();
    
                                }
    
    
                        }
                        for(int i=0;i<11;i++){
                            if(num[i]!=0){
                                break;
                            }
                            if(i==10){
                                isWin();
                            }
                        }
                        return true;
                    }
                });
            }
    
    
        public void isWin(){
            for(int i=0;i<11;i++){
                if(!(group[i].getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.c).getConstantState()))){
                    AlertDialog.Builder alert=new AlertDialog.Builder(this);
                    alert.create();
                    alert.setTitle("Game");
                    alert.setIcon(R.drawable.fall);
                    alert.setCancelable(false);
                    alert.setMessage("对不起,你输了!
    你想要重新来过吗?亲!");
                    alert.setPositiveButton("恩",new DialogInterface.OnClickListener(){
                        public void onClick(DialogInterface dialog,int which){
    
                            Intent intent =new Intent(MainActivity.this,MainActivity.class);
                            startActivity(intent);
                        }
    
                    });
                    alert.setNegativeButton("算了吧",new DialogInterface.OnClickListener(){
                        public void onClick(DialogInterface dialog,int which){
                            Intent intent=new Intent(MainActivity.this,Main3Activity.class);
                            startActivity(intent);
                        }
                    });
                    alert.show();
                    break;
                }
    
    
    
    
    
                if(i==10&&group[i].getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.c).getConstantState())){
                    AlertDialog.Builder alert=new AlertDialog.Builder(this);
                    alert.create();
                    alert.setTitle("Game");
                    alert.setIcon(R.drawable.win);
                    alert.setCancelable(false);
                    alert.setMessage("恭喜你顺利过关!!
    你想要进入下一关吗?亲!");
                    alert.setPositiveButton("恩",new DialogInterface.OnClickListener(){
                        public void onClick(DialogInterface dialog,int which){
    
                            Intent intent =new Intent(MainActivity.this,Main4Activity.class);
                            startActivity(intent);
                        }
    
                    });
                    alert.setNegativeButton("算了吧",new DialogInterface.OnClickListener(){
                        public void onClick(DialogInterface dialog,int which){
                            Intent intent=new Intent(MainActivity.this,Main3Activity.class);
                            startActivity(intent);
                        }
                    });
                    alert.show();
                }
            }
    
    
    
    
    
    
    
    
    
    }
    
    public void onStop(){
    
            Intent intent=new Intent(MainActivity.this,MusicService.class);
            stopService(intent);
            super.onStop();
    }
    
    
    
    }
    package com.example.xxr.game3;
    
    import android.content.Context;
    import android.media.MediaPlayer;
    
    /**
     * Created by xxr on 2018/3/11.
     */
    
    public class music {
    
    
    
    private static  MediaPlayer music;
    private boolean musicSt=false;
    
    public  music(Context t){
        music= MediaPlayer.create(t,R.raw.no__goodbye);
        music.setLooping(true);
        if(!musicSt){
            music.start();
            musicSt=true;
        }
    
    }
    public void pause(){
        if(musicSt){
            music.stop();
            musicSt=false;
        }
    }
    
    
    
    }
    package com.example.xxr.game3;
    
    import android.app.Service;
    import android.content.Intent;
    import android.media.MediaPlayer;
    import android.os.IBinder;
    
    /**
     * Created by xxr on 2018/3/11.
     */
    
    public class MusicService extends Service {
        private MediaPlayer mediaPlayer;
        public IBinder onBind(Intent intent){
            return null;
        }
        public void onStart(Intent intent,int startld){
            super.onStart(intent,startld);
            if(mediaPlayer==null){
                mediaPlayer=MediaPlayer.create(this,R.raw.dzq);
    
    
    
    
                mediaPlayer.setLooping(true);
                mediaPlayer.start();
    
            }
        }
        public void onDestroy(){
            super.onDestroy();
            mediaPlayer.stop();
        }
    }
  • 相关阅读:
    WUSTOJ 1279: Wallace and His Pet(Java)
    WUSTOJ 1235: 计算矩阵的鞍点(Java)
    WUSTOJ 1277: 小吉吉读书(Java)
    WUSTOJ 1276: 峰峰不搞G(Java)
    WUSTOJ 1275: 男神的逆袭(Java)
    WUSTOJ 1274: 喂,这里是帅帅的LCM(Java)
    1269: 划分数(Java)
    1267: 展开字符串(Java)
    1266: gcd和lcm(Java)
    微型计算机接口技术与汇编语言课后答案
  • 原文地址:https://www.cnblogs.com/kekexxr/p/12292058.html
Copyright © 2011-2022 走看看