Từ 1 tới 1 trên tổng số 1 kết quả

Đề tài: bài HELLO WORLD nâng cao...!

  1. #1
    Ngày gia nhập
    03 2017
    Bài viết
    6

    Mặc định bài HELLO WORLD nâng cao...!

    share cho ae tham khao

    Code:
    #define _CRT_SECURE_NO_WARNINGS
    #define _CRT_SECURE_NO_DEPRECATE
    #include <stdio.h>
    #include <conio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <string.h>
    #include <Windows.h>
    #define consoleWidth	80
    #define consoleHeight	25
    #pragma once
    #define ColorCode_Black			0
    #define ColorCode_DarkBlue		1
    #define ColorCode_DarkGreen		2
    #define ColorCode_DarkCyan		3
    #define ColorCode_DarkRed		4
    #define ColorCode_DarkPink		5
    #define ColorCode_DarkYellow	6
    #define ColorCode_DarkWhite		7
    #define ColorCode_Grey			8
    #define ColorCode_Blue			9
    #define ColorCode_Green			10
    #define ColorCode_Cyan			11
    #define ColorCode_Red			12
    #define ColorCode_Pink			13
    #define ColorCode_Yellow		14
    #define ColorCode_White			15
    
    #define default_ColorCode		7
    
    
    #define key_Up		1072
    #define key_Down	1080
    #define key_Left	1075
    #define key_Right	1077
    #define key_none	-1
    
    
    int inputKey();
    void clrscr();
    void gotoXY (int column, int line);
    int whereX();
    int whereY();
    
    void TextColor (int color);
    int inputKey()
    {
    	if (_kbhit())
    	{
    		int key = _getch();
    
    		if (key == 224)	
    		{
    			key = _getch();
    			return key + 1000;
    		}
    
    		return key;
    	}
    	else
    	{
    		return key_none;
    	}
    
    	return key_none;
    }
    
    void clrscr()
    {
    	CONSOLE_SCREEN_BUFFER_INFO	csbiInfo;                  
    	HANDLE	hConsoleOut;
    	COORD	Home = {0,0};
    	DWORD	dummy;
    
    	hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    	GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
    
    	FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
    	csbiInfo.dwCursorPosition.X = 0;
    	csbiInfo.dwCursorPosition.Y = 0;
    	SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
    }
    
    
    void gotoXY (int column, int line)
    {
    	COORD coord;
    	coord.X = column;
    	coord.Y = line;
    	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
    }
    
    
    int whereX()
    {
    	CONSOLE_SCREEN_BUFFER_INFO csbi;
    	if(GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi))
    		return csbi.dwCursorPosition.X;
    	return -1;
    }
    
    
    int whereY()
    {
    	CONSOLE_SCREEN_BUFFER_INFO csbi;
    	if(GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi))
    		return csbi.dwCursorPosition.Y;
    	return -1;
    }
    
    
    void TextColor (int color)
    {
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE) , color);
    }
    enum TrangThai {UP, DOWN, LEFT, RIGHT};
    
    
    struct ChuChay
    {
    	char s[31];
    	int y, x;	
    	TrangThai tt;
    };
    
    
    int main()
    { 
    char c;
    	int t;
    	printf("BAn hay an cac phim A,D,S,W de dieu khien\ntrong do:\n- A la sang trai\n- D la sang phai\n- W la len tren\n- S la xuong duoi\n  Neu ban da hieu thi an enter de bat dau in chu 'HELLO WORLD'");
    	TextColor (12);
    	printf("\n LUU Y: an ESC de thoat...!");
    	c=getch ();
    	if(c==27) return 0;
    	srand(time(NULL)); 
    	ChuChay A;
    	strcpy (A.s, "<...HELLO WORlD..>!");
    	int sLen = strlen(A.s);
    
    	A.y = 0;
    	A.x = (consoleWidth - sLen) / 2;
    
    	A.tt = DOWN;
    
    	
    	while (1)
    	{
    		clrscr();
    
    		gotoXY (A.x, A.y);
    		
    		TextColor (8 + rand() % 8);
    		printf ("%s", A.s);
    
    
    		if (A.y >= consoleHeight - 1)
    			A.tt = UP;
    		else if (A.y <= 0)
    			A.tt = DOWN;
    		else if (A.x <= 0)
    			A.tt = RIGHT;
    		else if (A.x >= consoleWidth - sLen)
    			A.tt = LEFT;
    
    
    		if (_kbhit())	
    		{
    			char key = _getch();
    
    			if (key == 'A' || key == 'a')
    				A.tt = LEFT;
    			else if (key == 'D' || key == 'd')
    				A.tt = RIGHT;
    			else if (key == 'W' || key == 'w')
    				A.tt = UP;
    			else if (key == 'S' || key == 's')
    				A.tt = DOWN;
    				if(key== 27) return 0;
    		}
    
    
    		if (A.tt == DOWN)
    			A.y++;
    		else if (A.tt == UP)
    			A.y--;
    		else if (A.tt == LEFT)
    			A.x--;
    		else if (A.tt == RIGHT)
    			A.x++;
    
    		Sleep (100); 
    	}
    
    	return 0;
    }
    Đã được chỉnh sửa lần cuối bởi vimotnguoi : 20-04-2017 lúc 11:10 PM.

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn