Hướng dẫn code c++ game rắn
Thủ Thuật Game Hướng dẫn Code Game Rắn Săn Mồi C++By Game Tip On Jun 7, 2022Share [Hướng dẫn Code Game Rắn Săn Mồi C++ Hãy like, đăng ký kênh, để lại những nhận xét cũng như giới thiệu khóa học cho bạn bè của mình để ủng hộ cho Lập Trình Không Khó nhé các bạn! #laptrinhkhongkho #ran #ran_san_moi ➪ Tags: #Hướng #dẫn #Code #Game #Rắn #Săn #Mồi share code bán acc gameshare code game bài onlineshare code game html5share code shop bán acc game free fireshare code shop game Share Game Rắn săn mồi là một game kinh điển, hầu hết trong chúng ta có lẽ cũng đã từng chơi qua game này rồi. Tong bài viết này mình sẽ chia sẽ mã nguồn code demo game rắn săn mồi được viết trên màn hình Console C/C++, các bạn có thể tải về nghịch và thăm khảo nhé. Rắn săn mồi trên C/C++ màn hình ConsoleTrước khi vào phần code, bạn xem qua video quay lại màn hình chương trình demo game Rắn săn mồi trên C/C++ dưới đây. Source code Rắn săn mồi1. Các định nghĩa kiểu dữ liệu enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };
2. Các hàm 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. void resizeConsole(int width, int height) – Đặt kích thước cửa sổ màn hình Console void resizeConsole(int width, int height) //Với width là chiều rộng, heigth là chiều cao { HWND console = GetConsoleWindow(); RECT r; GetWindowRect(console, &r); MoveWindow(console, r.left, r.top, width, height, TRUE); } int main() – Hàm chính int main() { resizeConsole(700,550); //Đặt kích thước màn hình với độ rộng là 700, cao 550 int thua=1, cam=0, thoat = 0, lever; char name[30], dname[30] = "No name";//biến này để ghi tên người trên Snake snake, luusnake; //Khai báo snake, và biến lưu snake luusnake.n = 0; // gắn độ dài con rắn =0 HQ hq; //Khai báo biến mồi con rắn docfile(luusnake, dname);//Đọc dữ liệu từ file, file này sẽ được dùng để lưu trò chơi playgame(thoat, name, lever, luusnake, dname); //Khởi tạo màn hình bắt đầu trò chơi system("cls"); fflush(stdin); if(thoat==0) { do{//Vòng lặp quá trình trò chơi thua=1; cam=0; khungngoai();//Vẽ khung bên ngoài khoitao(snake, hq);//Khởi tạo rắn và mồi do{ hienthi(snake, hq); //Hiển thị rắn và mồi dieukhien(snake, cam); //Điều khiển rắn di chyển Random(snake, hq);//Random mồi xuất hiện ở vt bất kì thuagame(snake, thua);//Kiêm tra thua game Sleep(lever); //Tạm dừng với 1 khoảng tg là lever(cấp độ càng cao rắn sẽ càng nhanh) }while(thua != 0); gameover(name, snake,luusnake);//Màn hình trò trơi kết thúc system("cls"); //Nếu diểm mới chơi lớn hơn điểm cũ thì lưu điểm mới vào file if(snake.n > luusnake.n) { ghifile(snake, name);//Ghi điểm mới vào file docfile(luusnake, dname);//tiếp tục đọc file vừa ghi để bắt đầu trò choi mới } playgame(thoat, name, lever, luusnake, dname);//Kiểm tra thoát game }while(thoat == 0); } }
void khungngoai() – Vẽ khung ngoài void khungngoai() { //các số 205,201,200...trong hàm printf là ký tự trong bẳng mã ASCII for(int i = 5; i<75; i++) { for(int j = 2; j<28; j++) { gotoxy(i, j+6); TextColor(112); printf(" "); } printf("\n"); } TextColor(11); for(int i = 0; i<=78; i++) { gotoxy(i, 0); printf("%c", 205); Sleep(1); } for(int i = 0; i<=78; i++) { gotoxy(i, 40); printf("%c", 205); Sleep(1); } for(int i = 0; i<=40; i++) { gotoxy(0, i); printf("%c", 186); Sleep(1); } for(int i = 0; i<=40; i++) { gotoxy(79, i); printf("%c", 186); Sleep(1); } TextColor(14); gotoxy(0,0); printf("%c", 201); gotoxy(0,40); printf("%c", 200); gotoxy(79,0); printf("%c", 187); gotoxy(79,40); printf("%c", 188); TextColor(11); for(int i = 2; i<=77; i++) { gotoxy(i, 1); printf("%c", 205); Sleep(1); } for(int i = 1; i<=77; i++) { gotoxy(i, 41); printf("%c", 205); Sleep(1); } for(int i = 1; i<=41; i++) { gotoxy(1, i); printf("%c", 186); Sleep(1); } for(int i = 1; i<=41; i++) { gotoxy(78, i); printf("%c", 186); Sleep(1); } TextColor(14); gotoxy(1,1); printf("%c", 201); gotoxy(1,41); printf("%c", 200); gotoxy(78,1); printf("%c", 187); gotoxy(78,41); printf("%c", 188); TextColor(6); for(int i = 4; i<=75; i++) { gotoxy(i, 7); printf("%c", 220); Sleep(1); } for(int i = 4; i<=75; i++) { gotoxy(i, 34); printf("%c", 223); Sleep(1); } for(int i = 1; i<=26; i++) { gotoxy(4, i+7); printf("%c", 186); Sleep(1); } for(int i = 1; i<=26; i++) { gotoxy(75, i+7); printf("%c", 186); Sleep(1); } TextColor(15); gotoxy(4,7); printf("%c", 201); gotoxy(4,34); printf("%c", 200); gotoxy(75,7); printf("%c", 187); gotoxy(75,34); printf("%c", 188); TextColor (11); for(int i = 0; i<15; i++) { gotoxy(63+i, 4); printf("%c", 205); } for(int i = 0; i<2; i++) { gotoxy(63, i+2); printf("%c", 186); } TextColor(14); gotoxy(63, 4); printf("%c", 200); gotoxy(65, 2);TextColor(10); printf("Playing Time"); gotoxy(5, 2);TextColor(10); printf("Chieu Dai"); TextColor(11); for(int i = 0; i<15; i++) { gotoxy(2+i, 4); printf("%c", 205); } for(int i = 0; i<2; i++) { gotoxy(17, i+2); printf("%c", 186); } for(int i = 0; i<43; i++) { gotoxy(19+i, 2); printf("_"); } TextColor(14); gotoxy(17, 4); printf("%c", 188); gotoxy(34, 0); TextColor(160); printf(" GAME SNAKE "); gotoxy(25,2); TextColor(12); printf("TAN CU CHAN - CNTT K16D - ICTU"); TextColor(4); for(int i = 0; i<55; i++) { gotoxy(13+i, 36); printf("%c", 205); } for(int i = 0; i<55; i++) { gotoxy(13+i, 38); printf("%c", 205); } gotoxy(27, 37); TextColor(4); printf("©Copyright "); gotoxy(38, 37); TextColor(3); printf("Fb.con/tanchan679"); gotoxy(79,41); } void playgame(int &thoat, char name[], int &lever, Snake &luusnake, char dname[]) – Tạo màn hình bắt đầu trò chơi void playgame(int &thoat, char name[], int &lever, Snake &luusnake, char dname[]) { /*TextColor(11); for(int i = 0; i<45; i++) { gotoxy(18+i, 6); printf("%c", 205); } for(int i = 0; i<45; i++) { gotoxy(18+i, 17); printf("%c", 205); }*/ khungplay(); for(int i = 0; i<40; i++) { if(i%5 == 0) { TextColor(9); gotoxy(20+i, 6); (5); printf("%c", 220); } else if(i%5 == 1) { TextColor(10); gotoxy(20+i, 6); Sleep(5); printf("%c", 220); } else if(i%5 == 2) { TextColor(11); gotoxy(20+i, 6); Sleep(5); printf("%c", 220); } else if(i%5 == 3){ TextColor(12); gotoxy(20+i, 6); Sleep(5); printf("%c", 220); } else if(i%5 == 4) { TextColor(13); gotoxy(20+i, 6); Sleep(5);printf("%c", 220); } } for(int i = 0; i<40; i++) { if(i%5 == 0) { TextColor(9); gotoxy(20+i, 17); Sleep(5); printf("%c", 220); } else if(i%5 == 1) { TextColor(10); gotoxy(20+i, 17); Sleep(5); printf("%c", 220); } else if(i%5 == 2) { TextColor(11); gotoxy(20+i, 17); Sleep(5); printf("%c", 220); } else if(i%5 == 3){ TextColor(12); gotoxy(20+i, 17); Sleep(5); printf("%c", 220); } else if(i%5 == 4) { TextColor(13); gotoxy(20+i, 17); Sleep(5); printf("%c", 220); } } TextColor(202); gotoxy(33, 10); printf("%c PLAY GAME ", 175); TextColor(14); gotoxy(33, 11); printf(" HELP "); gotoxy(33, 12); printf(" ABOUT "); gotoxy(33, 13); printf(" HIGHT SCORE "); gotoxy(33, 14); printf(" EXIT "); gotoxy(78,40); int chon = 0; int toado = 15; do{ char a = getch(); if(a == 80 ||a == 's'||a=='S'||a=='2') chon = 1; else if(a == 72 || a == 'w'||a=='W'||a=='8') chon = 2; else if(a == 13 ||a=='5') chon = 3; else chon = 0; if(chon == 1 && toado < 19) toado++; else if(chon == 2 && toado >15) toado--; if(toado == 15) { TextColor(202); gotoxy(33, 10); printf("%c PLAY GAME ", 175); TextColor(14); gotoxy(33, 11); printf(" HELP "); gotoxy(33, 12); printf(" ABOUT "); gotoxy(33, 13); printf(" HIGHT SCORE "); gotoxy(33, 14); printf(" EXIT "); TextColor(0); } if(toado == 16) { TextColor(14); gotoxy(33, 10); printf(" PLAY GAME "); TextColor(202); gotoxy(33, 11); printf("%c HELP ", 175); TextColor(14); gotoxy(33, 12); printf(" ABOUT "); gotoxy(33, 13); printf(" HIGHT SCORE "); gotoxy(33, 14); printf(" EXIT "); TextColor(0); } if(toado == 17) { TextColor(14); gotoxy(33, 10); printf(" PLAY GAME "); gotoxy(33, 11); printf(" HELP "); TextColor(202); gotoxy(33, 12); printf("%c ABOUT ", 175); TextColor(14); gotoxy(33, 13); printf(" HIGHT SCORE "); gotoxy(33, 14); printf(" EXIT "); TextColor(0); } if(toado == 18) { TextColor(14); gotoxy(33, 10); printf(" PLAY GAME "); gotoxy(33, 11); printf(" HELP "); gotoxy(33, 12); printf(" ABOUT "); TextColor(202); gotoxy(33, 13); printf("%c HIGHT SCORE ", 175); TextColor(14); gotoxy(33, 14); printf(" EXIT "); } if(toado == 19) { TextColor(14); gotoxy(33, 10); printf(" PLAY GAME "); gotoxy(33, 11); printf(" HELP "); gotoxy(33, 12); printf(" ABOUT "); gotoxy(33, 13); printf(" HIGHT SCORE "); TextColor(202); gotoxy(33, 14); printf("%c EXIT ", 175); TextColor(0); } }while(chon != 3); system("cls"); if(toado == 15) vaogame(name, lever, luusnake, dname); else if(toado == 16) help(thoat, name, lever, luusnake, dname); else if(toado == 17) about(thoat, name,lever, luusnake, dname); else if(toado == 18) Score(thoat, name,lever, luusnake, dname); else if(toado == 19) { thoat = 1; TextColor(14); gotoxy(22,15); printf("CAM ON BAN DA CHOI GAME CUA CHUNG TOI!!"); gotoxy(27,16); printf("CHUC BAN MOT NGAY TOT LANH!!"); TextColor(12); gotoxy(50,17); printf("#"); TextColor(9); gotoxy(51,17); printf("Tan_Chan"); Sleep(2000); } } void khungplay() – Vẽ khung game over void khungplay() { for(int i = 0; i<78; i++) { gotoxy(1+i, 0);TextColor(12); printf("%c", 220); } for(int i = 0; i<78; i++) { gotoxy(1+i, 41); TextColor(12); printf("%c", 205); } for(int j = 0; j<40; j++) { gotoxy(0, j+1); TextColor(12); printf("%c", 186); } for(int j = 0; j<40; j++) { gotoxy(79, j+1); TextColor(12); printf("%c", 186); } TextColor(14); gotoxy(0,0); printf("%c", 201); gotoxy(0,41); printf("%c", 200); gotoxy(79,0); printf("%c", 187); gotoxy(79,41); printf("%c", 188); gotoxy(34, 0); TextColor(160); printf(" GAME SNAKE "); TextColor(1); gotoxy(3,26); printf("$$$$$$$ $$$$$$$ $$$$ $$$ $$$$$$$$ $$$ $$$ $$$$$$$$ $$$$ $$$\n"); Sleep(40);TextColor(2); gotoxy(3,27); printf(" $$$ $$$ $$$ $$$$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$$$ $$$\n"); Sleep(40); TextColor(3); gotoxy(3,28); printf(" $$$ $$$ $$$ $$$$$$ $$$ $$$ $$$$$$$$$ $$$ $$$ $$$$$$ $$$\n"); Sleep(40);TextColor(5); gotoxy(3,29); printf(" $$$ $$$$$$$$$ $$$ $$$$$$ $$$ $$$ $$$ $$$$$$$$$$ $$$ $$$$$$\n"); Sleep(40); TextColor(4); gotoxy(3,30); printf(" $$$ $$$ $$$ $$$ $$$$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$$$\n"); Sleep(40);TextColor(6); gotoxy(3,31); printf(" $$$ $$$ $$$ $$$ $$$$ $$$$$$$$$ $$$ $$$ $$$ $$$ $$$ $$$$\n"); TextColor(1); for(int i = 0; i<55; i++) { gotoxy(13+i, 38); printf("%c", 205); } for(int i = 0; i<55; i++) { gotoxy(13+i, 40); printf("%c", 205); } gotoxy(27, 39); TextColor(4); printf("©Copyright "); gotoxy(38, 39); TextColor(3); printf("Fb.con/tanchan679"); } void help(int &thoat, char name[], int &lever, Snake &luusnake, char dname[]) – màn hình hướng dẫn trò chơi void help(int &thoat, char name[], int &lever, Snake &luusnake, char dname[]) { khungplay(); gotoxy(34, 0); TextColor(160); printf(" HELP "); TextColor(0); for(int i = 0; i<45; i++) { gotoxy(18+i, 11); printf(" "); } for(int i = 0; i<45; i++) { gotoxy(18+i, 21); printf(" "); } gotoxy(31, 4);TextColor(12); printf("2 TO HOP PHIM"); TextColor(14); gotoxy(12,7); printf("To hop 1"); TextColor(15); gotoxy(16, 8); printf("A: Sang Trai"); gotoxy(16, 9); printf("D: Sang Phai"); gotoxy(16, 10); printf("S: Len Tren"); gotoxy(16, 11); printf("W: Xuong Duoi"); TextColor(14); gotoxy(46,7); printf("To hop 2"); TextColor(15); gotoxy(50, 8); printf("4: Sang Trai"); gotoxy(50, 9); printf("6: Sang Phai"); gotoxy(50, 10); printf("8: Len Tren"); gotoxy(50, 11); printf("2: Xuong Duoi"); TextColor(14); gotoxy(28,14); printf("T :"); TextColor(15); gotoxy(32, 14); printf("Tam dung - Tiep Tuc"); gotoxy(36,36); TextColor(47); printf(" EXIT "); gotoxy(39,36); TextColor(0); char a; do { a = getch(); }while(a!=13 && a != 'e' && a != 'E' && a !='5' && a !=8); system("cls"); fflush(stdin); playgame(thoat, name, lever, luusnake, dname); } void Score(int &thoat, char name[], int &lever, Snake &luusnake, char dname[]) -Màn hình xem điểm cao nhất enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };0 void about(int &thoat, char name[], int &lever, Snake &luusnake, char dname[]) – Màn hình About enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };1 void khoitao(Snake &snake, HQ &hq) – Khởi tạo con rắn và mồi enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };2 void hienthi(Snake &snake, HQ &hq) – Hiển thị con rắn và mồi lên màn hình enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };3 void dieukhien(Snake &snake, int &cam) – Điều khiển con rắn di chuyển enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };4 void Random(Snake &snake, HQ &hq) – Hàm để tạo ngẫu nhiên mồi enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };5 void thuagame(Snake snake, int &thua) – Hàm kiểm thua trò chơi enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };6 void Time() – Hàm đếm thời gian trò chơi enum TT{RIGHT, LEFT, UP, DOWP}; struct Toado{ int x, y; }; struct Snake{ Toado dot[500]; int n; TT tt; }; struct HQ{ Toado td; };7 void vaogame(char name[], int &lever, Snake &luusnake, char dname[]) – Hàm bắt đầu trò chơi(Nhập tên người chơi, nhập lever…) |