kết quả từ 1 tới 3 trên 3

Game Rắn Săn Mồi Bằng C

  1. #1
    Ðến Từ
    Yên Bái
    Thành Viên Thứ: 235356
    Giới tính: Nam
    Bài gửi
    743

    Game Rắn Săn Mồi Bằng C

    Vẫn còn vài lỗi nhỏ trong khâu hiển thị, các bạn có thể tùy chỉnh cho phù hợp hơn
    điều khiển bằng 4 phím a s d w, choọn menu = phím mũi tên
    Đây là code
    Mã:
    #include<stdio.h>
    #include<windows.h>
    #include<conio.h>
    #include<string.h>
    #include<time.h>
    struct ToaDo
    {
    	int x,y;
    };
    ToaDo Head,Tail,Body;
    ToaDo TD[401];
    int demTD=0,demV=90;
    int DoDai = 2,CheckAnV=0,CheckV=0,ktDoAnV=0;
    int DiemCT=0,DiemOLD=0,DiemV=0;
    ToaDo DoAn,DoAnV;
    int doKho=100;
    int wherex()
    {
    	CONSOLE_SCREEN_BUFFER_INFO coninfo;
    	GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
    	return coninfo.dwCursorPosition.X;
    }
    int wherey()
    {
    	CONSOLE_SCREEN_BUFFER_INFO coninfo;
    	GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
    	return coninfo.dwCursorPosition.Y;
    }
    void gotoxy(int x, int y)
    {
        static HANDLE  h = NULL;
        if(!h)
            h = GetStdHandle(STD_OUTPUT_HANDLE);
        COORD c = {x,y};
        SetConsoleCursorPosition(h,c);
    }
    void SetTeColor(WORD color)
    { 
        HANDLE hConsoleOutput;
        hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
        CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
        GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
        WORD wAttributes = screen_buffer_info.wAttributes;
        color &= 0x000f;
        wAttributes &= 0xfff0; wAttributes |= color;
        SetConsoleTextAttribute(hConsoleOutput, wAttributes);
    }
    void abcd()
    {
    	SetTeColor(13);
    	gotoxy(15,2);
     	printf("Moi Thong Tin Chi Tiet Vui Long Lien He: ");
     	SetTeColor(14);
     	char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c";
    	int __=3**_+5;
    	printf("\n\n    \t\t\t");
    	printf(_,__+59,__-32,__-19,__-4,__-21,__-40,__+17,__-7,__-21,__-44,__-19,__-17,__-9,__-15,__-2,__+58);
    	printf("\n\t\t\t %c Vforum.vn %c",1,1);
    	printf("\n\n");
    }
    void reset();
    void intro();
    void menu();
    void menuchon(int chon, int choncu);
    void xuatDiem();
    int DieuKhien(int n, int x, int y);
    void DiNgangT( int x, int y);
    void DiLen( int x, int y);
    void DiXuong( int x, int y);
    void DiNgangL(int x, int y);
    void xoaTail(ToaDo cuoi);
    ToaDo ViTriDau();
    bool Check();
    void inDoAn(ToaDo DoAn);
    void XoaDoAn(ToaDo DoAn);
    void TaoDoAn();
    void TaoDoAnV();
    void Khung();
    int main()
    {
    	menu();
    	system("cls");
    	Khung();
    	srand(time(NULL));
    	gotoxy(2,10);
     	Head = ViTriDau();
     	Body=Head;
     	Body.x=1;
     	TD[0] = Body;
     	TD[1] = Head;
     	TaoDoAn();
    	DiNgangT(Head.x,Head.y);
    	
    }
    int DieuKhien(int n, int x, int y)
    {
    	SetTeColor(2);
    	if(DiemCT > DiemOLD)
    	{
    		TaoDoAn();
    		DiemOLD = DiemCT;
    		if(DiemCT % 5 == 0)
    			ktDoAnV=0;
    		ktDoAnV =0;
    	}
    	if(DiemCT != 0 && DiemCT % 5 == 0 && CheckV == 0 && ktDoAnV==0)
    	{
    		TaoDoAnV();
    		CheckV=1;
    	}
    	if(CheckV == 1)
    	{
    		demV--;
    	}
    	if(CheckV == 0 || demV == 0)
    	{
    		demV=90;
    		XoaDoAn(DoAnV);
    		CheckV=0;
    		ktDoAnV =1;
    	}
    	xuatDiem();
    	if(Check() == true)
    		if (kbhit())
    		{  
    			int a = getch();
    			if(n == 4 || n == 2)
    			{
    				if(a == 115 )
    					DiXuong(x,y);
    				if(a == 119)
    					DiLen(x,y);
    			}
    			if(n == 1 || n == 3)
    			{
    				if( a == 100)
    					DiNgangT(x,y);
    				if( a == 97)
    					DiNgangL(x,y);
    			}
    			if(a == 112)
    			{
    				gotoxy(1,21);
    				printf("                 ");
    				while(1)
    				{
    					if(kbhit())
    					{
    						int p = getch();
    						if( p == 112)
    							break;
    						if( p == 27)
    						{
    							reset();
    							main();
    						}
    					}
    					gotoxy(10,21);
    					Sleep(100);
    					printf("DANG TAM DUNG BAM p DE TIEP TUC -- BAM ESC DE QUAY LAI MENU");
    					gotoxy(10,21);
    					Sleep(100);
    					printf("                                                           ");
    				}
    				
    			}
    			// s = 115     == 1 
    			// a = 97		== 2
    			// w = 119		== 3
    			// d = 100		== 4
    		}
    	if(Check() == false)
    	{
    		system("cls");
    		SetTeColor(12);
    		printf("\t\tDIE CMNR\n");
    		printf("\tdiem cua ban la : %d \n",DiemCT+DiemV);
    		char tmp;
    		SetTeColor(15);
    		printf("\tBAM ENTER DE CHOI LAI\n\tBAM ESC DE THOAT LUON");
    		while(1)
    		{
    			tmp = getch();
    			if(tmp == 13)
    			{
    				reset();
    				main();
    			}
    			if(tmp == 27)
    			{
    				printf("\n");
    				printf("\t\t\t\tBye Bye !~~");
    				printf("\t\t\t\tBye Bye !~~");
    				printf("\t\t\t\tBye Bye !~~");
    				printf("Thoat trong 3s");
    				Sleep(3000);
    				exit(1);
    			}
    		}
    		exit(1);
    	}
    	return 0;
    }
    void DiNgangT(int x, int y)
    {
    	while(1)
    	{
    		Sleep(doKho);
    		gotoxy(++x,y);
    		printf("%c",1);
    		if(x == DoAn.x&& y ==DoAn.y)
    		{
    			DiemCT++;
    			DoDai++;
    			printf("%c",7);
    			goto daira;	
    		}
    		if(x == DoAnV.x&& y ==DoAnV.y )
    		{
    			CheckAnV=1;
    			CheckV=0;
    			DiemV+=demV;
    			ktDoAnV=1;
    		}
    		xoaTail(TD[0]);
    		for(int i = 0 ; i < DoDai-1 ; i ++ )
    			TD[i] = TD[i+1];
    		daira:;
    		gotoxy(x,y);
    		Head = ViTriDau();
    		TD[DoDai-1]=Head;
    		DieuKhien(4,x,y);
    	}
    }
    void DiNgangL(int x, int y)
    {
    	int dem = 0;
    	while(1)
    	{
    		Sleep(doKho);
    		gotoxy(--x,y);
    		printf("%c",1);
    		if(x == DoAn.x&& y ==DoAn.y)
    		{
    			DiemCT++;
    			DoDai++;
    			printf("%c",7);
    			goto daira;	
    		}
    		if(x == DoAnV.x&& y ==DoAnV.y )
    		{
    			CheckAnV=1;
    			CheckV=0;
    			DiemV+=demV;
    			ktDoAnV=1;
    		}
    		xoaTail(TD[0]);
    		for(int i = 0 ; i < DoDai-1 ; i ++ )
    			TD[i] = TD[i+1];
    		daira:;
    		gotoxy(x,y);
    		Head = ViTriDau();
    		TD[DoDai-1]=Head;
    		DieuKhien(4,x,y);
    	}
    }
    void DiLen(int x, int y)
    {
    	while(1)
    	{
    		Sleep(doKho);
    		gotoxy(x,--y);
    		printf("%c",1);
    		if(x == DoAn.x&& y ==DoAn.y)
    		{
    			DiemCT++;
    			DoDai++;
    			printf("%c",7);
    			goto daira;
    		}
    		if(x == DoAnV.x&& y ==DoAnV.y )
    		{
    			CheckAnV=1;
    			CheckV=0;
    			DiemV+=demV;
    			ktDoAnV=1;
    		}
    		xoaTail(TD[0]);
    		for(int i = 0 ; i < DoDai-1 ; i ++ )
    			TD[i] = TD[i+1];
    		daira:;
    		gotoxy(x,y);
    		Head = ViTriDau();
    		TD[DoDai-1]=Head;
    		DieuKhien(3,x,y);
    	}	
    }
    void DiXuong(int x, int y)
    {
    	while(1)
    	{
    		Sleep(doKho);
    		gotoxy(x,++y);
    		printf("%c",1);
    		if(x == DoAn.x&& y ==DoAn.y)
    		{
    			DiemCT++;
    			DoDai++;
    			printf("%c",7);
    			goto daira;
    		}
    		if(x == DoAnV.x&& y ==DoAnV.y )
    		{
    			CheckAnV=1;
    			CheckV=0;
    			DiemV+=demV;
    			ktDoAnV=1;
    		}
    		xoaTail(TD[0]);
    		for(int i = 0 ; i < DoDai-1 ; i ++ )
    			TD[i] = TD[i+1];
    		daira:;
    		gotoxy(x,y);
    		Head = ViTriDau();
    		TD[DoDai-1]=Head;
    		DieuKhien(3,x,y);
    	}
    }
    ToaDo ViTriDau()
    {
    	ToaDo Dau;
    	Dau.x = wherex();
    	Dau.y = wherey();
    	return Dau;
    }
    void TaoDoAn()
    {
    	int check = 0;
    	do
    	{
    		DoAn.x = 2+rand()%76;
    		DoAn.y = 2+rand()%18;
    		for(int i = 0 ; i < DoDai ; i ++)
    		{
    			if(TD[i].x == DoAn.x && TD[i].y == DoAn.y)
    			{
    				check = 1;
    				break;
    			}	
    		} 
    		if(check == 0)
    		{
    			SetTeColor(14);
    			inDoAn(DoAn);
    		}
    	}while(check == 1);
    }
    void TaoDoAnV()
    {
    	int check = 0;
    	do
    	{
    		DoAnV.x = 2+rand()%76;
    		DoAnV.y = 2+rand()%18;
    		if( DoAnV.x == DoAn.x && DoAnV.y == DoAn.y)
    		{
    			check =1;
    			continue;
    		}
    		for(int i = 0 ; i < DoDai ; i ++)
    		{
    			if(TD[i].x == DoAnV.x && TD[i].y == DoAnV.y)
    			{
    				check = 1;
    				break;
    			}	
    		} 
    		if(check == 0)
    		{
    			SetTeColor(13);
    			inDoAn(DoAnV);
    		}
    	}while(check == 1);
    }
    void inDoAn(ToaDo DoAn)
    {
    	gotoxy(DoAn.x,DoAn.y);
    	printf("*");
    }
    void XoaDoAn(ToaDo DoAn)
    {
    	gotoxy(DoAn.x,DoAn.y);
    	printf(" ");
    }
    void xuatDiem()
    {
    	gotoxy(1,21);
    	printf("BAM p DE TAM DUNG");
    	gotoxy(1,22);
    	printf("DIEM CUA BAN LA: %d",DiemCT+DiemV);
    }
    void xoaTail(ToaDo cuoi)
    {
    	gotoxy(cuoi.x,cuoi.y);
    	printf(" ");	
    }
    bool Check()
    {
    	if(Head.x == 0 || Head.x == 78 || Head.y == 0 || Head.y == 20)
    		return false;
    	for(int i = 0 ; i < DoDai-1 ; i ++)
    		if(TD[i].x == Head.x && TD[i].y == Head.y )
    			return false;
    	return true;
    }
    void intro()
    {
    	system("cls");
    	SetTeColor(12);
    	abcd();
    	SetTeColor(15);
    	printf("Bam enter de qua lai luc nay");
    	char enter ;
    	while(1)
    	{
    		enter = getch();
    		if(enter == 13)
    			break;
    	}
    	menu();
    }
    void Khung()
    {
    	for(int i = 0 ; i < 80 ; i ++)
    	{
    		if(i == 79)
    			printf("%c",3);
    		if(i < 79)
    			printf("%c",31);
    	}
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %cV",16,17);
    	printf("%c                                                                             %cF",16,17);
    	printf("%c                                                                             %cO",16,17);
    	printf("%c                                                                             %cR",16,17);
    	printf("%c                                                                             %cU",16,17);
    	printf("%c                                                                             %cM",16,17);
    	printf("%c                                                                             %c.",16,17);
    	printf("%c                                                                             %cV",16,17);
    	printf("%c                                                                             %cN",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	printf("%c                                                                             %c ",16,17);
    	for(int i = 0 ; i < 80 ; i ++)
    	{
    		if(i == 79)
    		printf("%c",3);
    		if(i < 79)
    		printf("%c",30);
    	}
    }
    void menu()
    {
    	system("cls");
    	int chon = 1,choncu=0;
    	SetTeColor(11);
    	gotoxy(23,2);
    	printf(">>>>>GAME RAN SAN MOI<<<<<\n");
    	SetTeColor(10);
    	gotoxy(32,3);
    	printf("Choi Luon");
    	gotoxy(29,4);
    	printf("Chon Muc Do Choi");
    	gotoxy(32,5);
    	printf("Huong Dan");
    	gotoxy(32,6);
    	printf("Thong Tin\n");
    	menuchon(1,0);
    	while(1)
    	{
    		char phim;
    		if(kbhit())
    		{
    			phim = getch();
    			if(phim == 13)
    		 		break;
     			if(phim == 80)
     			{
    				if(chon < 4)
    				{
    					chon++;
    					choncu=chon-1;
    					menuchon(chon,choncu);
    				}
    			}
    			if(phim == 72)
     			{
    				if(chon > 1)
    				{
    					chon--; 
    					choncu=chon+1;	
    					menuchon(chon,choncu);
    				}
    			}
    		}
    	}
    	if(chon == 1)
    		return;
    	if(chon == 2)
    	{
    		system("cls");
    		char chondokho;
    		printf("Bam 1 2 3 chon muc do: ( dai qua nhat lam )\n");
    		printf("1.De\n");
    		printf("2.Binh Thuong\n");
    		printf("3.Kho");
    		
    		do
    		{
    			chondokho = getch();
    			if(chondokho < 49 || chondokho > 51)
    				printf("chon lai de \n");
    		}while(chondokho < 49 || chondokho > 51);
    		system("cls");
    		if(chondokho == 49)
    		{
    			doKho = 150;
    			printf("Da chon muc do DE\n");
    		}
    		if(chondokho == 50)
    		{
    			doKho = 90;
    			printf("Da chon muc do BINH THUONG\n");
    		}
    		if(chondokho == 51)
    		{
    			doKho = 40;
    			printf("Da chon muc do KHO\n");
    		}
    		printf("Bam enter de choi game\nBam ESC de quay lai menu\n");
    		char enter ;
    		while(1)
    		{
    			enter = getch();
    			if(enter == 27)
    				break;
    			if(enter == 13)
    				return;
    		}
    		menu();	
    	}
    	if(chon == 3)
    	{
    		system("cls");
    		printf("\tDung 4 phim a w d s de dieu khien con ran, dam dau zo tuong la chet\n");
    		printf("\tKhi an duoc 5 con moi thi se xuat hien con moi dac biet\n\tton tai tron 90 buoc di cua con ran\n");
    		printf("\tKhi an con moi dac biet se duoc diem rat la cao\n");
    		printf("\tcung kha don gian\n");
    		printf("\tBam enter de qua lai luc nay__");
    		char enter ;
    		while(1)
    		{
    			enter = getch();
    			if(enter == 13)
    				break;
    		}
    		menu();
    	}
    	if(chon == 4)
    	{
    		intro();
    	}
    	
    }
    void menuchon(int chon, int choncu)
    {
    	if(chon == 1 )
    	{
    		if(choncu == 2)
    		{
    			gotoxy(25,4);
    			printf(" ");
    			gotoxy(47,4);
    			printf(" ");	
    		}
    		gotoxy(25,3);
    		printf("%c",16);
    		gotoxy(47,3);
    		printf("%c",17);
    	}
    	if(chon == 2)
    	{
    		if(choncu == 1)
    		{
    			gotoxy(25,3);
    			printf(" ");
    			gotoxy(47,3);
    			printf(" ");	
    		}
    		if(choncu == 3)
    		{
    			gotoxy(25,5);
    			printf(" ");
    			gotoxy(47,5);
    			printf(" ");	
    		}
    		gotoxy(25,4);
    		printf("%c",16);
    		gotoxy(47,4);
    		printf("%c",17);
    	}
    	if(chon == 3)
    	{
    		if(choncu == 2)
    		{
    			gotoxy(25,4);
    			printf(" ");
    			gotoxy(47,4);
    			printf(" ");	
    		}
    		if(choncu == 4)
    		{
    			gotoxy(25,6);
    			printf(" ");
    			gotoxy(47,6);
    			printf(" ");	
    		}
    		gotoxy(25,5);
    		printf("%c",16);
    		gotoxy(47,5);
    		printf("%c",17);
    	}
    	if(chon == 4)
    	{
    		if(choncu == 3)
    		{
    			gotoxy(25,5);
    			printf(" ");
    			gotoxy(47,5);
    			printf(" ");	
    		}
    		gotoxy(25,6);
    		printf("%c",16);
    		gotoxy(47,6);
    		printf("%c",17);
    	}
    }
    void reset()
    {
    	demTD=0;
    	demV=90;
    	DoDai = 2;
    	CheckAnV=0;
    	CheckV=0;
    	ktDoAnV=0;
    	DiemCT=0;
    	DiemOLD=0;
    	DiemV=0;
    	doKho=100;
    }

    demo chơi thử
    Mã:
    http://www.fshare.vn/file/YKOH3OXDQDC9
    class TapLamHacker{ private String TráiTim;
    private void Set_TráiTim(String Gái){ this.TráiTim = "Thanh Trâm"; }
    public String Get_TráiTim(){ return "Thanh Trâm"; }
    public String ToString(){return"My love is Thanh Trâm For one future go shopping not concerned about price ";}
    } Liên hệ Skype: Taplamhacker
    Quick reply to this message Trả lời       

  2. 3 thành viên đã cảm ơn taplamhacker:



  3. #2
    Ðến Từ
    TP. Hồ Chí Minh
    Thành Viên Thứ: 178574
    Giới tính: Nam
    Bài gửi
    23.186

    Reply: Game Rắn Săn Mồi Bằng C

    taplamhacker hay quá ta.
    Khách hãy nhấn nút "thanks" khi thấy bài viết hữu ích với bạn, cảm ơn

  4. #3
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 179483
    Giới tính: Nữ
    Bài gửi
    18.984

    Reply: Game Rắn Săn Mồi Bằng C

    điều khiển thì khó khăn và bắt mồi còn quá dở






    con rắn thì xấu hoắc

    Bộ cài chuẩn Win 10 Creators Update từ Microsoft
    Link Download bộ cài ISO Win 10 Creators Update Version 1703
    --> Windows 10 Creators Update version 1703

  5. 2 thành viên đã cảm ơn 0406: