Game Trúc Xanh trên Android

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

 

Kết Quả: 
2        3       4

 

Tải Code Tại Đây:  trucxanh