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(); } }