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
- 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.
woww