Thứ Tư, 28 Tháng Chín 2022
Trang chủLập trìnhLập trình C/C++Xây dựng demo Code Vượt vật cản trên màn hình Console C/C++

Xây dựng demo Code Vượt vật cản trên màn hình Console C/C++

DANH SÁCH BÀI VIẾT
Lập trình tỏ tình người yêu trên Graphics C/C++ – I LOVE YOU
Lập trình Demo Ai Là Triệu Phú trên Graphics C/C++
Lập Trình C/C++ Vẽ và Tô Màu Trái Tim bằng Thư Viện Graphics
Lập trình Đồng Hồ Thời Gian & Bấm Giờ Trên Graphics C/C++ 
Lập trình Game Flappy Bird Trên Graphics C/C++
Lập trình Demo ứng dụng Học lập trình trên Graphics C/C++
Lập trình I LOVE YOU trên Graphics C/C++ – Lập trình tỏ tình Crush
Bóng bay lên trời – Lập trình Happy Birthday  trên C/C++
Tỏ tình Crush bằng code C/C++ – I LOVE YOU ngôn ngữ C/C++
Cách tạo menu game trên thư viện Graphics C/C++
Lập trình game Cờ Caro trên C/C++ màn hình Console(Demo Game)
Lập trình ứng dụng giúp bé học toán trên C/C++ màn hình Console
Lập trình game Rắn săn mồi trên C/C++ màn hình Console(Demo Snake)
Xây dựng demo Code Vượt vật cản trên màn hình Console C/C++

Trong chương trình demo Code Vượt vật cản trên màn hình Console C/C++ này được mình code từ năm nhất đại học, thế nên code còn nhiều chỗ rườm dà, dành cho bạn nào có nhu cầu thăm khảo, hoặc các bạn năm nhất đại học có thể tải về nghịch coi như là học hỏi thêm nhé.

Xây dựng demo Code Vượt vật cản trên màn hình Console C/C++

Trước khi vào phần code, bạn xem qua video quay lại màn hình chương trình demo dưới đây.

Vì là năm nhất đại học, và code là trên màn hình Console C/C++ nên trò chơi cũng tương đối là đơn giản và khi chơi cũng tương đối là giật và lag.

Xây dựng chương trình

  1. Chương trình xử dụng 1 số thư viện như sau:

#include<iostream>

Thư viện iostream liên quan đến đầu vào và đầu ra. Chúng ta sẽ sử dụng các hàm trong thư viện này để nhận đầu vào từ bàn phím và xuất dữ liệu ra console(cin, cout).

#include<windows.h>

Khai báo để sử dụng  các hàm Định dạng nội dung Console(Thay đổi vị trí con trỏ, đổi màu văn bản…).

#include<conio.h>

Thư viện này khai báo để xử dụng hàm getch(), nhiều người chưa hiểu đúng bản chất của hàm này thì cho rằng đây là lệnh dừng màn hình. Nhưng đúng thì đây là lệnh để bắt 1 phím nhấn nha.

2. Các Struct cần định nghĩa

struct Toado{
int x, y; //Toa do x, Toa do y
};
struct Nhanvat{
Toado td[7];
};
struct Vatcan{
Toado td[7];
};
  • struct Toado: Sử dụng để lưu tọa độ x,y của 1 điểm
  • struct Nhanvat: sử dụng để lưu nhân vật(Nhân vật cấu tạo từ 7 điểm tọa độ, khai báo mảng gồm 7 phần tử Toado)
  • struct Vatcan: sử dụng để lưu vật cản

3. Các hàm cần thiết

void gotoxy(int x,int y) – Hàm này để di chuyển con trỏ tới 1 điểm với tọa độ là x,y trên màn hình

void gotoxy(int x,int y)//x,y là tọa điểm x,y trên màn hình
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD a = {x, y};
	SetConsoleCursorPosition(h, a);
}

Tọa độ trên màn hình Console thì hơi ngược một chút với tọa độ xy trong toán học. Gốc O sẽ từ vị trí bên trái và phía trên màn hình, tức là trục y sẽ ngược hướng xuống dưới, xem ảnh mình họa để hiểu hơn.

void TextColor(int x) – Hàm này để đổi màu văn bản, với x là màu cần truyền vào

void TextColor(int x)
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(h, x);
}

Màu văn bản x, sẽ chạy từ các số 0-12(Nếu lớn hơn thì chia dư 12). Với số 0 tương ứng màu đen cho tới màu số 12.

int main() – Hàm chính

int main()
{
	int nhay=0, xuong=0, xuathien=0, thua=0, diem=0;
//nhay, xuong  - thực hiện nhiệm vụ để nhân vật có thể nhày lên
//xuathien - sử dụng để kiểm tra nếu vật cản đầu tiên chạy hết khỏi màn hình tạo mới 1 vật cản
//thua - kiểm tra xem game over chưa(Nhân vật bị chạm vật cản)
//diem - Lưu điểm số
	Nhanvat nhanvat; //Khai báo 1 nhân vật
	Vatcan vatcan1, vatcan2, vatcan3; //Khai báo 3 vật cản
	khoitao(nhanvat); //Gọi hàm khởi tạo

//Sử dụng vòng lặp thực hiện tiến trình trò chơi
	do{
		TextColor(11); //Đổi màu văn bản

//Di chuyển con trỏ tới vị trí tọa độ x=0, y =15 tạo đường dưới chân nhân vật
		gotoxy(0, 15); printf("--------------------------------------------------------------------------------");

//Kiểm tra game over
		gameover(nhanvat, vatcan1, vatcan2, vatcan3, thua);

//Cộng điểm và hiển thị điểm chơi
		sdiem(xuathien, diem);

//Hiển thị cập nhật nhân vật
		hienthi(nhanvat, vatcan1, vatcan2, vatcan3, xuathien, thua);

//Di chuyển nhân vật
		Move(nhanvat, nhay, xuong);
//Vật cản chạy từ phải qua trái
		chayvatcan(vatcan1, vatcan2, vatcan3, xuathien);

//Sau mỗi lần thực hiện cho chương trình tạm dừng 50ms, và xóa màn hình cũ vòng lặp tiếp theo sẽ cập nhật màn hình mới(Lý do trò chơi bị giật lag)
		Sleep(50); system("cls");
	}while(thua == 0); //Nếu biến thua bằng 1 thì kết thúc trò chơi
}

void khoitao(Nhanvat &nhanvat) – Khởi tạo nhân vật

void khoitao(Nhanvat &nhanvat)
{
//Gắn vị trí tọa độ các điểm tạo nên nhân vật
	nhanvat.td[0].x = 1;  nhanvat.td[0].y = 14;
	nhanvat.td[1].x = 3;  nhanvat.td[1].y = 14; 
	nhanvat.td[2].x = 2;  nhanvat.td[2].y = 13; 
	nhanvat.td[3].x = 1;  nhanvat.td[3].y = 12; 
	nhanvat.td[4].x = 2;  nhanvat.td[4].y = 12; 
	nhanvat.td[5].x = 3;  nhanvat.td[5].y = 12;
	nhanvat.td[6].x = 2;  nhanvat.td[6].y = 11;  
}

void hienthi(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int xuathien, int thua) – Hàm để hiển thị tất cả mọi thứ ra màn hình

void hienthi(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int xuathien, int thua)
{
	//Hien thi nhan vat
	TextColor(9); if(thua == 1) TextColor(12);
	gotoxy(nhanvat.td[0].x, nhanvat.td[0].y); cout<<"/";
	gotoxy(nhanvat.td[1].x, nhanvat.td[1].y); cout<<"\\";
	gotoxy(nhanvat.td[2].x, nhanvat.td[2].y); cout<<(char)179;
	gotoxy(nhanvat.td[3].x, nhanvat.td[3].y); cout<<"/";
	gotoxy(nhanvat.td[4].x, nhanvat.td[4].y); cout<<(char)179;
	gotoxy(nhanvat.td[5].x, nhanvat.td[5].y); cout<<"\\";
	gotoxy(nhanvat.td[6].x, nhanvat.td[6].y); cout<<"@";	
	
	//Hien  thi vat can 1
	TextColor(13); 
	gotoxy(vatcan1.td[0].x, vatcan1.td[0].y); cout<<"@";
	gotoxy(vatcan1.td[1].x, vatcan1.td[1].y); cout<<"@";
	gotoxy(vatcan1.td[2].x, vatcan1.td[2].y); cout<<"@";
	gotoxy(vatcan1.td[3].x, vatcan1.td[3].y); cout<<"/";
	gotoxy(vatcan1.td[4].x, vatcan1.td[4].y); cout<<"@";
	gotoxy(vatcan1.td[5].x, vatcan1.td[5].y); cout<<"\\";
	gotoxy(vatcan1.td[6].x, vatcan1.td[6].y); cout<<"@";
	
	//Hien thi vat can 2
	if(xuathien > 25)
	{
	gotoxy(vatcan2.td[0].x, vatcan2.td[0].y); cout<<"@";
	gotoxy(vatcan2.td[1].x, vatcan2.td[1].y); cout<<"@";
	gotoxy(vatcan2.td[2].x, vatcan2.td[2].y); cout<<"@";
	gotoxy(vatcan2.td[3].x, vatcan2.td[3].y); cout<<"/";
	gotoxy(vatcan2.td[4].x, vatcan2.td[4].y); cout<<"@";
	gotoxy(vatcan2.td[5].x, vatcan2.td[5].y); cout<<"\\";
	gotoxy(vatcan2.td[6].x, vatcan2.td[6].y); cout<<"@";
	}
	
	//Hien thi vat can 3
	if(xuathien > 50)
	{
	gotoxy(vatcan3.td[0].x, vatcan3.td[0].y); cout<<"@";
	gotoxy(vatcan3.td[1].x, vatcan3.td[1].y); cout<<"@";
	gotoxy(vatcan3.td[2].x, vatcan3.td[2].y); cout<<"@";
	gotoxy(vatcan3.td[3].x, vatcan3.td[3].y); cout<<"/";
	gotoxy(vatcan3.td[4].x, vatcan3.td[4].y); cout<<"@";
	gotoxy(vatcan3.td[5].x, vatcan3.td[5].y); cout<<"\\";
	gotoxy(vatcan3.td[6].x, vatcan3.td[6].y); cout<<"@";
	}


//Nếu thua bằng 1 thì hiển thị người chơi là GAME OVER và tạm dừng màn hình 4.5 giây
	if(thua == 1)
	{
		gotoxy(36, 10); TextColor(12); printf("GAME OVER");
		Sleep(4500);
	}
}

void Move(Nhanvat &nhanvat, int &nhay, int &xuong) – Hàm để nhân vật di chuyển nhảy lên

void Move(Nhanvat &nhanvat, int &nhay, int &xuong)
{
//kbhit() Có tác dụng kiểm tra xem nếu có phím nhấn(Tức là nếu mình nhấn 1 phím bất kì chương trình sẽ chạy vào lệnh if)
	if(kbhit() && nhay == 0 && xuong == 0)
	{
		char a = getch();	if(a == 32) nhay = 9; //Gán nhay = 9 lệnh phía dưới sẽ kiểm tra biến này != sẽ thực hiện việc nhảy lên
	}
//Nhân vật nhảy lên
	if(nhay > 0)
		{
			nhay--;
			for(int i =0; i<7; i++)
		{
			nhanvat.td[i].y--; 	if(nhay == 0) xuong=9;
		}
		}		
//Nhân vật rơi xuống		
	if(xuong > 0)
		{
			for(int i =0; i<7; i++)
		{
			nhanvat.td[i].y++;
		}
			xuong--;
		}
}

void chayvatcan(Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &xuathien) – Hàm này tác dụng vật cản tự chạy từ phải qua trái

void chayvatcan(Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &xuathien)
{
	int temp = xuathien-25, temp1 = xuathien-50;
	//Vat can 1--------------------------------------------------------
	if(xuathien%76 == 0) //Nếu vật cản 1 chạy hết màn hình thì khởi tạo lại vật cản 1
	{
		vatcan1.td[0].x = 75;    vatcan1.td[0].y = 14;
		vatcan1.td[1].x = 76;    vatcan1.td[1].y = 14;
		vatcan1.td[2].x = 77;    vatcan1.td[2].y = 14;
		vatcan1.td[3].x = 75;    vatcan1.td[3].y = 13;
		vatcan1.td[4].x = 76;    vatcan1.td[4].y = 13;
		vatcan1.td[5].x = 77;    vatcan1.td[5].y = 13;
		vatcan1.td[6].x = 76;    vatcan1.td[6].y = 12;
	}
   for(int j = 0; j<7; j++) vatcan1.td[j].x--;
   //vat can 2-----------------------------------------------------------
   	if(temp%76 == 0) // //Nếu vật cản 2 chạy hết màn hình thì khởi tạo lại vật cản 2
	{
		vatcan2.td[0].x = 75;    vatcan2.td[0].y = 14;
		vatcan2.td[1].x = 76;    vatcan2.td[1].y = 14;
		vatcan2.td[2].x = 77;    vatcan2.td[2].y = 14;
		vatcan2.td[3].x = 75;    vatcan2.td[3].y = 13;
		vatcan2.td[4].x = 76;    vatcan2.td[4].y = 13;
		vatcan2.td[5].x = 77;    vatcan2.td[5].y = 13;
		vatcan2.td[6].x = 76;    vatcan2.td[6].y = 12;
	}
    for(int j = 0; j<7; j++) vatcan2.td[j].x--;
   //Vat can 3-----------------------------------------------------
   	if(temp1%76 == 0) //Nếu vật cản 3 chạy hết màn hình thì khởi tạo lại vật cản 3
	{
		vatcan3.td[0].x = 75;    vatcan3.td[0].y = 14;
		vatcan3.td[1].x = 76;    vatcan3.td[1].y = 14;
		vatcan3.td[2].x = 77;    vatcan3.td[2].y = 14;
		vatcan3.td[3].x = 75;    vatcan3.td[3].y = 13;
		vatcan3.td[4].x = 76;    vatcan3.td[4].y = 13;
		vatcan3.td[5].x = 77;    vatcan3.td[5].y = 13;
		vatcan3.td[6].x = 76;    vatcan3.td[6].y = 12;
	}
   for(int j = 0; j<7; j++) vatcan3.td[j].x--; //Tọa độ x trừ đi 1 để vật cản chạy qua trái 1 đơn vị
	xuathien++;
}

void gameover(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &thua) – Trò chơi kết thúc

void gameover(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &thua)
{

//Sử dụng 2 vòng lặp kiểm tra xem nhân vật có bị đụng chúng vật cản
   for(int i =0; i<7; i++)
   {
   	 for(int j = 0; j<7; j++)
   	 {
//Kiểm tra tất cả tọa độ x, y của nhân vật có bị trùng vào tọa độ x,y bất kì của cả 3 vật cản
         	if(nhanvat.td[i].x == vatcan1.td[j].x && nhanvat.td[i].y == vatcan1.td[j].y) thua = 1;
   	        else if(nhanvat.td[i].x == vatcan2.td[j].x && nhanvat.td[i].y == vatcan2.td[j].y) thua = 1;
   	        else if(nhanvat.td[i].x == vatcan3.td[i].x && nhanvat.td[i].y == vatcan3.td[j].y) thua = 1;
		}
   }
}

void sdiem(int xuathien, int &diem) – Tính và hiển thị điểm

void sdiem(int xuathien, int &diem)
{
	if(xuathien>55) //Nếu 1 vật cản vượt qua nhân vật
	{
		if(xuathien%25 == 0) diem++; //Tăng điểm lên 1
	}
	gotoxy(1, 16); TextColor(12); printf("Diem: %d", diem); //hiển thị điểm ở vị trí tọa đô x=1, y=16
	gotoxy(32, 0); TextColor(15); printf("Channel: Ranh VL");
}

Chương trình hoàn chỉnh

Dưới đây là chương trình hoàn chỉnh, có hàm nào chưa hiểu thì xem lại bên trên nhé. Với các hàm riêng bên trên mình có cmt đầy đủ rồi.

MÃ NGUỒN CHƯƠNG TRÌNH

#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
void gotoxy(int x,int y)
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD a = {x, y};
	SetConsoleCursorPosition(h, a);
}
void TextColor(int x)
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(h, x);
}
struct Toado{
	int x, y; //Toa do x, Toa do y
};
struct Nhanvat{
		Toado td[7];
};
struct Vatcan{
	Toado td[7];
};


void khoitao(Nhanvat &nhanvat);
void hienthi(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int xuathien, int thua);
void Move(Nhanvat &nhanvat, int &nhay, int &xuong);
void chayvatcan(Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &xuathien);
void gameover(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &thua);
void sdiem(int xuathien, int &diem);



int main()
{
	int nhay=0, xuong=0, xuathien=0, thua=0, diem=0;
	Nhanvat nhanvat;
	Vatcan vatcan1, vatcan2, vatcan3;
	khoitao(nhanvat);
	do{
		TextColor(11);
		gotoxy(0, 15); printf("--------------------------------------------------------------------------------");
		gameover(nhanvat, vatcan1, vatcan2, vatcan3, thua);
		sdiem(xuathien, diem);
		hienthi(nhanvat, vatcan1, vatcan2, vatcan3, xuathien, thua);
		Move(nhanvat, nhay, xuong);
		chayvatcan(vatcan1, vatcan2, vatcan3, xuathien);
		Sleep(50); system("cls");
	}while(thua == 0);
}
void khoitao(Nhanvat &nhanvat)
{
	nhanvat.td[0].x = 1;  nhanvat.td[0].y = 14;
	nhanvat.td[1].x = 3;  nhanvat.td[1].y = 14; 
	nhanvat.td[2].x = 2;  nhanvat.td[2].y = 13; 
	nhanvat.td[3].x = 1;  nhanvat.td[3].y = 12; 
	nhanvat.td[4].x = 2;  nhanvat.td[4].y = 12; 
	nhanvat.td[5].x = 3;  nhanvat.td[5].y = 12;
	nhanvat.td[6].x = 2;  nhanvat.td[6].y = 11;  
}
void hienthi(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int xuathien, int thua)
{
	//Hien thi nhan vat
	TextColor(9); if(thua == 1) TextColor(12);
	gotoxy(nhanvat.td[0].x, nhanvat.td[0].y); cout<<"/";
	gotoxy(nhanvat.td[1].x, nhanvat.td[1].y); cout<<"\\";
	gotoxy(nhanvat.td[2].x, nhanvat.td[2].y); cout<<(char)179;
	gotoxy(nhanvat.td[3].x, nhanvat.td[3].y); cout<<"/";
	gotoxy(nhanvat.td[4].x, nhanvat.td[4].y); cout<<(char)179;
	gotoxy(nhanvat.td[5].x, nhanvat.td[5].y); cout<<"\\";
	gotoxy(nhanvat.td[6].x, nhanvat.td[6].y); cout<<"@";	
	
	//Hien  thi vat can 1
	TextColor(13); 
	gotoxy(vatcan1.td[0].x, vatcan1.td[0].y); cout<<"@";
	gotoxy(vatcan1.td[1].x, vatcan1.td[1].y); cout<<"@";
	gotoxy(vatcan1.td[2].x, vatcan1.td[2].y); cout<<"@";
	gotoxy(vatcan1.td[3].x, vatcan1.td[3].y); cout<<"/";
	gotoxy(vatcan1.td[4].x, vatcan1.td[4].y); cout<<"@";
	gotoxy(vatcan1.td[5].x, vatcan1.td[5].y); cout<<"\\";
	gotoxy(vatcan1.td[6].x, vatcan1.td[6].y); cout<<"@";
	
	//Hien thi vat can 2
	if(xuathien > 25)
	{
	gotoxy(vatcan2.td[0].x, vatcan2.td[0].y); cout<<"@";
	gotoxy(vatcan2.td[1].x, vatcan2.td[1].y); cout<<"@";
	gotoxy(vatcan2.td[2].x, vatcan2.td[2].y); cout<<"@";
	gotoxy(vatcan2.td[3].x, vatcan2.td[3].y); cout<<"/";
	gotoxy(vatcan2.td[4].x, vatcan2.td[4].y); cout<<"@";
	gotoxy(vatcan2.td[5].x, vatcan2.td[5].y); cout<<"\\";
	gotoxy(vatcan2.td[6].x, vatcan2.td[6].y); cout<<"@";
	}
	
	//Hien thi vat can 3
	if(xuathien > 50)
	{
	gotoxy(vatcan3.td[0].x, vatcan3.td[0].y); cout<<"@";
	gotoxy(vatcan3.td[1].x, vatcan3.td[1].y); cout<<"@";
	gotoxy(vatcan3.td[2].x, vatcan3.td[2].y); cout<<"@";
	gotoxy(vatcan3.td[3].x, vatcan3.td[3].y); cout<<"/";
	gotoxy(vatcan3.td[4].x, vatcan3.td[4].y); cout<<"@";
	gotoxy(vatcan3.td[5].x, vatcan3.td[5].y); cout<<"\\";
	gotoxy(vatcan3.td[6].x, vatcan3.td[6].y); cout<<"@";
	}
	if(thua == 1)
	{
		gotoxy(36, 10); TextColor(12); printf("GAME OVER");
		Sleep(4500);
	}
}
void Move(Nhanvat &nhanvat, int &nhay, int &xuong)
{
	if(kbhit() && nhay == 0 && xuong == 0)
	{
		char a = getch();	if(a == 32) nhay = 9;
	}
	if(nhay > 0)
		{
			nhay--;
			for(int i =0; i<7; i++)
		{
			nhanvat.td[i].y--; 	if(nhay == 0) xuong=9;
		}
		}				
	if(xuong > 0)
		{
			for(int i =0; i<7; i++)
		{
			nhanvat.td[i].y++;
		}
			xuong--;
		}
}

void chayvatcan(Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &xuathien)
{
	int temp = xuathien-25, temp1 = xuathien-50;
	//Vat can 1--------------------------------------------------------
	if(xuathien%76 == 0)
	{
		vatcan1.td[0].x = 75;    vatcan1.td[0].y = 14;
		vatcan1.td[1].x = 76;    vatcan1.td[1].y = 14;
		vatcan1.td[2].x = 77;    vatcan1.td[2].y = 14;
		vatcan1.td[3].x = 75;    vatcan1.td[3].y = 13;
		vatcan1.td[4].x = 76;    vatcan1.td[4].y = 13;
		vatcan1.td[5].x = 77;    vatcan1.td[5].y = 13;
		vatcan1.td[6].x = 76;    vatcan1.td[6].y = 12;
	}
   for(int j = 0; j<7; j++) vatcan1.td[j].x--;
   //vat can 2-----------------------------------------------------------
   	if(temp%76 == 0)
	{
		vatcan2.td[0].x = 75;    vatcan2.td[0].y = 14;
		vatcan2.td[1].x = 76;    vatcan2.td[1].y = 14;
		vatcan2.td[2].x = 77;    vatcan2.td[2].y = 14;
		vatcan2.td[3].x = 75;    vatcan2.td[3].y = 13;
		vatcan2.td[4].x = 76;    vatcan2.td[4].y = 13;
		vatcan2.td[5].x = 77;    vatcan2.td[5].y = 13;
		vatcan2.td[6].x = 76;    vatcan2.td[6].y = 12;
	}
    for(int j = 0; j<7; j++) vatcan2.td[j].x--;
   //Vat can 3-----------------------------------------------------
   	if(temp1%76 == 0)
	{
		vatcan3.td[0].x = 75;    vatcan3.td[0].y = 14;
		vatcan3.td[1].x = 76;    vatcan3.td[1].y = 14;
		vatcan3.td[2].x = 77;    vatcan3.td[2].y = 14;
		vatcan3.td[3].x = 75;    vatcan3.td[3].y = 13;
		vatcan3.td[4].x = 76;    vatcan3.td[4].y = 13;
		vatcan3.td[5].x = 77;    vatcan3.td[5].y = 13;
		vatcan3.td[6].x = 76;    vatcan3.td[6].y = 12;
	}
   for(int j = 0; j<7; j++) vatcan3.td[j].x--;
	xuathien++;
}
void gameover(Nhanvat &nhanvat, Vatcan &vatcan1, Vatcan &vatcan2, Vatcan &vatcan3, int &thua)
{
   for(int i =0; i<7; i++)
   {
   	 for(int j = 0; j<7; j++)
   	 {
         	if(nhanvat.td[i].x == vatcan1.td[j].x && nhanvat.td[i].y == vatcan1.td[j].y) thua = 1;
   	        else if(nhanvat.td[i].x == vatcan2.td[j].x && nhanvat.td[i].y == vatcan2.td[j].y) thua = 1;
   	        else if(nhanvat.td[i].x == vatcan3.td[i].x && nhanvat.td[i].y == vatcan3.td[j].y) thua = 1;
		}
   }
}
void sdiem(int xuathien, int &diem)
{
	if(xuathien>55)
	{
		if(xuathien%25 == 0) diem++;
	}
	gotoxy(1, 16); TextColor(12); printf("Diem: %d", diem);
	gotoxy(32, 0); TextColor(15); printf("Channel: Ranh VL");
}

Cảm ơn bạn đã theo dõi bài viết! Chúc bạn học tốt.

5 1 Bỏ phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN

1 BÌNH LUẬN

Đăng ký nhận thông báo
Thông báo email khi
guest
1 Bình luận
Cũ nhất
Mới nhất Được bình chọn nhiều nhất
Không thể gửi email
Phản hồi nội tuyến
phuong
phuong
30 ngày trước

woww

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


1
0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x