Chào các bạn!
Hôm nay mình chia sẻ code game Trúc Xanh mình mới viết, giao diện không được đẹp cho lắm, các bạn lấy code về rồi nâng cấp cho đẹp xíu là OK. 🙂
Đầu tiên ta khởi tạo các biến flag(cờ):
public int time =0; // biến thời gian sau mỗi giây, phút, .... thì sẽ thực hiện 1 công việc public int vt; // lưu lại vị trí của 2 hình trùng nhau để xóa public int labai1; // lưu lại lá bài thứ nhất public int labai2; // lưu lại lá bài thứ 2 để nếu không trùng thì úp 2 lá bài thứ nhất và thứ 2 Boolean a1 = false,a2 = false,a3 = false,a4 = false,a5 = false,a6 = false,a7 = false,a8 = false,a9 = false,a10 = false,a11 = false,a12 = false,a13 = false,a14 = false,a15 = false,a16 = false; // biến này dùng để khi xóa hình thì không cho click nữa Boolean a1_kich1lan = false,a2_kich1lan = false,a3_kich1lan = false,a4_kich1lan = false,a5_kich1lan = false,a6_kich1lan = false,a7_kich1lan = false,a8_kich1lan = false,a9_kich1lan = false,a10_kich1lan = false,a11_kich1lan = false,a12_kich1lan = false,a13_kich1lan = false,a14_kich1lan = false,a15_kich1lan = false,a16_kich1lan = false; // biến này dùng để cho click mỗi hình 1 lần duy nhất cho đến khi int thebai[] = { R.drawable.a0, R.drawable.a1, R.drawable.a2, R.drawable.a3, R.drawable.a4,R.drawable.a5, R.drawable.a6, R.drawable.a7, R.drawable.a8}; // mảng chứa các ID thẻ bài, a0 lá bài úp, a1 lá bài 1, a2 lá bài 2,.... int chiclick2hinh = 0; // biến này chỉ cho click 2 hình int kiemtratrung = 0; // biến này dùng để kiểm tra trùng nhau hay không ImageView img;
Hàm xóa hình nếu 2 hình trùng nhau:
Timer t = new Timer(); public void xoahinhtrungnhau() { time=0; // khởi tạo time =0; t.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { time += 1; sau mỗi giây biến time lên if(time == 1) // sau 1 giây sẽ xử lý các sự kiện, mục đích là cho người chơi xem hình mở lên sau 1 giây rồi xóa 2 hình đó nếu trùng { if(vt==1) { //1-2 img = (ImageView) findViewById(R.id.a1); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a2); img.setImageResource(Color.BLACK); a1 = true; a2 = true; vt=0; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } if(vt==2) { //3-5 img = (ImageView) findViewById(R.id.a3); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a5); img.setImageResource(Color.BLACK); vt=0; a3 = true; a5 = true; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } if(vt==3) { //4-8 img = (ImageView) findViewById(R.id.a4); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a8); img.setImageResource(Color.BLACK); vt=0; a4 = true; a8 = true; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } if(vt==4) { //6-15 img = (ImageView) findViewById(R.id.a6); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a15); img.setImageResource(Color.BLACK); vt=0; a6 = true; a15 = true; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } if(vt==5) { //7-13 img = (ImageView) findViewById(R.id.a7); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a13); img.setImageResource(Color.BLACK); vt=0; a7 = true; a13 = true; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } if(vt==6) { //9-12 img = (ImageView) findViewById(R.id.a9); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a12); img.setImageResource(Color.BLACK); vt=0; a9 = true; a12 = true; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } if(vt==7) { //10-16 img = (ImageView) findViewById(R.id.a10); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a16); img.setImageResource(Color.BLACK); vt=0; a10 = true; a16 = true; kiemtratrung =0; chiclick2hinh=0; labai1 =0; //return; } if(vt==8) { //11-14 img = (ImageView) findViewById(R.id.a11); img.setImageResource(Color.BLACK); img = (ImageView) findViewById(R.id.a14); img.setImageResource(Color.BLACK); vt=0; a11 = true; a14 = true; kiemtratrung =0; chiclick2hinh =0; labai1 =0; //return; } } } }); } }, 0, 1000);//1000 = 1 giây. }
Hàm úp hình xuống nếu 2 hình không trùng nhau:
public void upbaikhongtrung() { time=0; t.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { time += 1; if(time == 1) { if(labai2 ==1) { img=(ImageView) findViewById(R.id.a1); img.setImageResource(thebai[0]); } if(labai2 ==2) { img=(ImageView) findViewById(R.id.a2); img.setImageResource(thebai[0]); } if(labai2 ==3) { img=(ImageView) findViewById(R.id.a3); img.setImageResource(thebai[0]); } if(labai2 ==4) { img=(ImageView) findViewById(R.id.a4); img.setImageResource(thebai[0]); } if(labai2 ==5) { img=(ImageView) findViewById(R.id.a5); img.setImageResource(thebai[0]); } if(labai2 ==6) { img=(ImageView) findViewById(R.id.a6); img.setImageResource(thebai[0]); } if(labai2 ==7) { img=(ImageView) findViewById(R.id.a7); img.setImageResource(thebai[0]); } if(labai2 ==8) { img=(ImageView) findViewById(R.id.a8); img.setImageResource(thebai[0]); } if(labai2 ==9) { img=(ImageView) findViewById(R.id.a9); img.setImageResource(thebai[0]); } if(labai2 ==10) { img=(ImageView) findViewById(R.id.a10); img.setImageResource(thebai[0]); } if(labai2 ==11) { img=(ImageView) findViewById(R.id.a11); img.setImageResource(thebai[0]); } if(labai2 ==12) { img=(ImageView) findViewById(R.id.a12); img.setImageResource(thebai[0]); } if(labai2 ==13) { img=(ImageView) findViewById(R.id.a13); img.setImageResource(thebai[0]); } if(labai2 ==14) { img=(ImageView) findViewById(R.id.a14); img.setImageResource(thebai[0]); } if(labai2 ==15) { img=(ImageView) findViewById(R.id.a15); img.setImageResource(thebai[0]); } if(labai2 ==16) { img=(ImageView) findViewById(R.id.a16); img.setImageResource(thebai[0]); } if(labai1==1) { img=(ImageView) findViewById(R.id.a1); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a1_kich1lan = false; } if(labai1==2) { img=(ImageView) findViewById(R.id.a2); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a2_kich1lan = false; } if(labai1==3) { img=(ImageView) findViewById(R.id.a3); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a3_kich1lan = false; } if(labai1==4) { img=(ImageView) findViewById(R.id.a4); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a4_kich1lan = false; } if(labai1==5) { img=(ImageView) findViewById(R.id.a5); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a5_kich1lan = false; } if(labai1==6) { img=(ImageView) findViewById(R.id.a6); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a6_kich1lan = false; } if(labai1==7) { img=(ImageView) findViewById(R.id.a7); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a7_kich1lan = false; } if(labai1==8) { img=(ImageView) findViewById(R.id.a8); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a8_kich1lan = false; } if(labai1==9) { img=(ImageView) findViewById(R.id.a9); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a9_kich1lan = false; } if(labai1==10) { img=(ImageView) findViewById(R.id.a10); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a10_kich1lan = false; } if(labai1==11) { img=(ImageView) findViewById(R.id.a11); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a11_kich1lan = false; } if(labai1==12) { img=(ImageView) findViewById(R.id.a12); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a12_kich1lan = false; } if(labai1==13) { img=(ImageView) findViewById(R.id.a13); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a13_kich1lan = false; } if(labai1==14) { img=(ImageView) findViewById(R.id.a14); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a14_kich1lan = false; } if(labai1==15) { img=(ImageView) findViewById(R.id.a15); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a15_kich1lan = false; } if(labai1==16) { img=(ImageView) findViewById(R.id.a16); img.setImageResource(thebai[0]); chiclick2hinh=0; labai1 =0; kiemtratrung =0; a16_kich1lan = false; } } } }); } }, 0, 1000); }
Hàm xử lý sự kiện click:
public void btnClick(View v) { switch (v.getId()) { case R.id.a1: if(!a1_kich1lan&&!a1) { a1_kich1lan = true; img=(ImageView) findViewById(R.id.a1); img.setImageResource(thebai[1]); if(kiemtratrung==1) // nếu đã click hình nào trước đó thì vào hàm này kiểm tra có trùng hay không { vt=1; xoahinhtrungnhau(); break; } else { kiemtratrung =1; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =1; } if(chiclick2hinh==2) { labai2 = 1; upbaikhongtrung(); a1_kich1lan = false; } } } break; case R.id.a2: if(!a2_kich1lan&&!a2) { a2_kich1lan = true; img=(ImageView) findViewById(R.id.a2); img.setImageResource(thebai[1]); if(kiemtratrung==1) { vt=1; xoahinhtrungnhau(); break; } else { kiemtratrung = 1; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =2; } if(chiclick2hinh==2) { labai2 =2; upbaikhongtrung(); a2_kich1lan = false; } } } break; case R.id.a3: if(!a3_kich1lan&&!a3) { a3_kich1lan = true; img=(ImageView) findViewById(R.id.a3); img.setImageResource(thebai[2]); if(kiemtratrung==2) { vt=2; xoahinhtrungnhau(); break; } else { kiemtratrung = 2; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =3; } if(chiclick2hinh==2) { labai2 =3; upbaikhongtrung(); a3_kich1lan = false; } } } break; case R.id.a4: if(!a4_kich1lan&&!a4) { a4_kich1lan = true; img=(ImageView) findViewById(R.id.a4); img.setImageResource(thebai[3]); if(kiemtratrung==3) { vt=3; xoahinhtrungnhau(); break; } else { kiemtratrung = 3; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =4; } if(chiclick2hinh==2) { labai2=4; upbaikhongtrung(); a4_kich1lan = false; } } } break; case R.id.a5: if(!a5_kich1lan&&!a5) { a5_kich1lan = true; img=(ImageView) findViewById(R.id.a5); img.setImageResource(thebai[2]); if(kiemtratrung==2) { vt=2; xoahinhtrungnhau(); break; } else { kiemtratrung = 2; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =5; } if(chiclick2hinh==2) { labai2=5; upbaikhongtrung(); a5_kich1lan = false; } } } break; case R.id.a6: if(!a6_kich1lan&&!a6) { a6_kich1lan = true; img=(ImageView) findViewById(R.id.a6); img.setImageResource(thebai[4]); if(kiemtratrung==4) { vt=4; xoahinhtrungnhau(); break; } else { kiemtratrung = 4; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =6; } if(chiclick2hinh==2) { labai2=6; upbaikhongtrung(); a6_kich1lan = false; } } } break; case R.id.a7: if(!a7_kich1lan&&!a7) { a7_kich1lan = true; img=(ImageView) findViewById(R.id.a7); img.setImageResource(thebai[5]); if(kiemtratrung==5) { vt=5; xoahinhtrungnhau(); break; } else { kiemtratrung = 5; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =7; } if(chiclick2hinh==2) { labai2=7; upbaikhongtrung(); a7_kich1lan = false; } } } break; case R.id.a8: if(!a8_kich1lan&&!a8) { a8_kich1lan= true; img=(ImageView) findViewById(R.id.a8); img.setImageResource(thebai[3]); if(kiemtratrung==3) { vt=3; xoahinhtrungnhau(); break; } else { kiemtratrung = 3; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =8; } if(chiclick2hinh==2) { labai2=8; upbaikhongtrung(); a8_kich1lan = false; } } } break; case R.id.a9: if(!a9_kich1lan&&!a9) { a9_kich1lan = true; img=(ImageView) findViewById(R.id.a9); img.setImageResource(thebai[6]); if(kiemtratrung==6) { vt=6; xoahinhtrungnhau(); break; } else { kiemtratrung = 6; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =9; } if(chiclick2hinh==2) { labai2=9; upbaikhongtrung(); a9_kich1lan = false; } } } break; case R.id.a10: if(!a10_kich1lan&&!a10) { a10_kich1lan = true; img=(ImageView) findViewById(R.id.a10); img.setImageResource(thebai[7]); if(kiemtratrung==7) { vt=7; xoahinhtrungnhau(); break; } else { kiemtratrung = 7; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =10; } if(chiclick2hinh==2) { labai2 =10; upbaikhongtrung(); a10_kich1lan = false; } } } break; case R.id.a11: if(!a11_kich1lan&&!a11) { a11_kich1lan = true; img=(ImageView) findViewById(R.id.a11); img.setImageResource(thebai[8]); if(kiemtratrung==8) { vt=8; xoahinhtrungnhau(); break; } else { kiemtratrung = 8; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =11; } if(chiclick2hinh==2) { labai2 =11; upbaikhongtrung(); a11_kich1lan = false; } } } break; case R.id.a12: if(!a12_kich1lan&&!a12) { a12_kich1lan = true; img=(ImageView) findViewById(R.id.a12); img.setImageResource(thebai[6]); if(kiemtratrung==6) { vt=6; xoahinhtrungnhau(); break; } else { kiemtratrung = 6; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =12; } if(chiclick2hinh==2) { labai2 =12; upbaikhongtrung(); a12_kich1lan = false; } } } break; case R.id.a13: if(!a13_kich1lan&&!a13) { a13_kich1lan = true; img=(ImageView) findViewById(R.id.a13); img.setImageResource(thebai[5]); if(kiemtratrung==5) { vt=5; xoahinhtrungnhau(); break; } else { kiemtratrung = 5; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =13; } if(chiclick2hinh==2) { labai2=13; upbaikhongtrung(); a13_kich1lan = false; } } } break; case R.id.a14: if(!a14_kich1lan&&!a14) { a14_kich1lan = true; img=(ImageView) findViewById(R.id.a14); img.setImageResource(thebai[8]); if(kiemtratrung==8) { vt=8; xoahinhtrungnhau(); break; } else { kiemtratrung = 8; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =14; } if(chiclick2hinh==2) { labai2=14; upbaikhongtrung(); a14_kich1lan = false; } } } break; case R.id.a15: if(!a15_kich1lan&&!a15) { a15_kich1lan = true; img=(ImageView) findViewById(R.id.a15); img.setImageResource(thebai[4]); if(kiemtratrung==4) { vt=4; xoahinhtrungnhau(); break; } else { kiemtratrung = 4; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =15; } if(chiclick2hinh==2) { labai2=15; upbaikhongtrung(); a15_kich1lan = false; } } } break; case R.id.a16: if(!a16_kich1lan&&!a16) { a16_kich1lan = true; img=(ImageView) findViewById(R.id.a16); img.setImageResource(thebai[7]); if(kiemtratrung==7) { vt=7; xoahinhtrungnhau(); break; } else { kiemtratrung = 7; chiclick2hinh++; if(chiclick2hinh==1) { labai1 =16; } if(chiclick2hinh==2) { labai2=16; upbaikhongtrung(); a16_kich1lan = false; } } } break; default: break; } }
Tải Code Tại Đây: trucxanh