Some extension function on C / C ++

1. Delete function screen
Header files:

& nbsp;

#include

system (“CLS”);

2.Ham random number generator

Header files:
#include
#include

srand (time (NULL));
rand ()% 100 + 1; // generate a random integer from 1-100

For example, screen print 20 random numbers from 0-90

#include
using namespace std;
main ()
{
char i;
srand (time (NULL));
for (i = 0; i & lt; 20; i ++)
cout & lt; & lt; rand ()% 91 & lt; & lt; "";
}

3. Ham move the cursor to the coordinates x, y on the console: gotoxy (x, y)
(without resizing the console is divided into 80 columns and 24 rows)
Header files:

#include

gotoxy void (int x, int y)
{
HANDLE hConsoleOutput;
Coord Cursor_an_Pos = {x-1, y-1};
hConsoleOutput = GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleCursorPosition (hConsoleOutput, Cursor_an_Pos);
}

4. The constructor for text color and background color for consoles
+ Function color for text: textcolor (WORD color)
WORD will bring value from 0-15
Header files:
#include

void textcolor (WORD color)
{
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle (STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo (hConsoleOutput, & amp; screen_buffer_info);
WORD wAttributes = screen_buffer_info.wAttributes;
color & amp; = 0x000f;
wAttributes & amp; = 0xfff0;
wAttributes | = color;
SetConsoleTextAttribute (hConsoleOutput, wAttributes);
}

Encoding color:

+ Function color background
Header files:
#include

system (“Color ab ‘);

Where a is the background color, text color b (we can use this function to change the color of the text but slower performance textcolor).
Example: white, pink letters

#include
#include
using namespace std;
main ()
{
system (“Color FD”);
cout & lt; & lt; “Hello world”;
}

Encoding color:


5. The function resizes Console: resizeConsole (int width, int height)
Header files:

0x0500 #define _WIN32_WINNT
#include

resizeConsole void (int width, int height)
{
HWND console = GetConsoleWindow ();
RECT r;
GetWindowRect (console, & amp; R);
MoveWindow (console, r.left, r.top, width, height, TRUE);
}
6. Delay function ()
In codeblock does not support the function Delay () function so we can replace the sleep () function delays program
process over a period of time
Header files:

#include

Sleep (1200); // 1200ms delay = 1.2 seconds
7. Show a character c at coordinates x, y with color color
Request: some functions defined above

multiPut void (int x, int y, char c, int color)
{
gotoxy (x, y);
textcolor (color);
printf ("% c", c);
gotoxy (40.20);
}

8. Change the title (Caption) program
Header files:

#include

SetConsoleTitle (“My program …”); // title = “My program …”

9. Draw a rectangle with coordinates 2 peak (above, left – bottom, right) is (x1, y1) – (x2, y2), color color, title color title and the title is ttColor
Request: some functions defined above

class cBoard
{
public:
int x1, y1, x2, y2, width, height;
drawBoard inline void (int x1, int y1, int x2, int y2, int color = 14, title = NULL char *, int ttColor = 15)
{
int i;
multiPut (x1, y1, (char) 218, color); // top-left
multiPut (x2, y1, (char) 191, color); // top-right
multiPut (x1, y2, (char) 192, color); // bottom-left
multiPut (x2, y2, (char) 217, color); // bottom-right
textcolor (color);
for (i = x1; i & lt; x2-1; i ++) // top border * /
multiPut (i + 1, y1, (char) 196, color);
for (i = x1; i & lt; x2-1; i ++) // bottom border * /
multiPut (i + 1, y2, (char) 196, color);
for (i = 0; i & lt; y2-y1-1; i ++) / * left border * /
multiPut (x1, y1 + i + 1, (char) 179, color);
for (i = 0; i & lt; y2-y1-1; i ++) / * right border * /
multiPut (x2, y1 + i + 1, (char) 179, color);
if (title! = NULL & amp; & amp; strlen (title) & lt; (x2-x1))
for (i = 0; i & lt; strlen (title); i ++)
multiPut (i + (x2 + x1) / 2-strlen (title) / 2, y1, * (title + i), ttColor);
}
board};

& nbsp;

For example:

int main ()
{
clrscr ();
SetConsoleTitle ("My program ...");
system ("color 80");
gotoxy (2.2);
textcolor (12); // red
cout & lt; & lt; char (3); // heart
board.drawBoard (1,1,30,20,14, "This is a demo program", 15);
gotoxy (2.5);
textcolor (10);
cout & lt; & lt; "What next?";
board.drawBoard (5,7,20,12,9);
resizeConsole (300.350);
getch ();
return 0;
}

Results:

Screen printed code Ascii encoding of characters.

#include
#include
main ()
{
for (int i = 0; i & lt; 255; i ++)
printf ("% 3d:% c", i, i);
getch ();
}

10. A number of other functions to the console
system (“help”); // DOS commands
// Library functions wincon.h

A very useful site for Console with C / C ++ (you’ll find the mouse function and event in Part5).
http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles1.html
Look up the standard function in C / C ++
http://virus.dtvt.org/Documents/cpp.chm
Some sample code of the upper jaw.
& amp; & amp;
Source C ++ Console games
(game shoot finished, unfinished puzzle game)
http://www.mediafire.com/?h9a4ksqhw9v7ag4
Also 1 game (drop boom) on DOS graphical user here
http://dtvt.org/dtvt.asp?TID=5894&title=c-game-th%E1%BA%A3-bom-c%E1%BB%B1c-kh%E1%BB%A7ng-graphics-h%C4%91t
Game development ebook
http://www.box.net/shared/xp1g5t6o0s
Some simple games on the console: puzzle, shoot, racing simple, Snake … or you can learn more about OpenGL or DirectX, artificial intelligence for game developers spend … map graphics on the win (codeblock that supports this).

1. Hàm xoá màn hình
Header file:

 

#include

system(“CLS”);

2.Hàm tạo số ngẫu nhiên

Header file:
#include
#include

srand(time(NULL));
rand()%100+1; //tạo số nguyên ngẫu nhiên từ 1-100

Ví dụ in ra màn hình 20 số ngẫu nhiên từ 0-90

#include
using namespace std;
main()
{
char i;
srand(time(NULL));
for(i=0;i<20;i++)
cout<<rand()%91<<" ";
}

3. Hàm chuyển con trỏ đến toạ độ x,y trên màn hình console: gotoxy(x,y)
(màn hình console khi chưa resize được chia thành 80 cột và 24 hàng)
Header file:

#include

void gotoxy(int x,int y)
{
HANDLE hConsoleOutput;
COORD Cursor_an_Pos = {x-1,y-1};
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos);
}

4. Các hàm tạo màu cho text và màu background cho console
+ hàm tạo màu cho text: textcolor(WORD color)
WORD sẽ mang giá trị từ 0-15
Header file:
#include

void textcolor(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);
}

Bảng mã màu:
cosole_mix
+ hàm tạo màu background
Header file:
#include

system(“Color ab”);

Trong đó a là màu background, b là màu text (ta có thể dùng hàm này để thay đổi màu cho text nhưng tốc độ thực thi chậm hơn textcolor).
Ví dụ: nền trắng, chữ hồng

#include
#include
using namespace std;
main()
{
system(“Color FD”);
cout<<“Hello world”;
}

Bảng mã màu:

cosole_mix
5. Hàm thay đổi kích thước Console: resizeConsole(int width, int height)
Header file:

#define _WIN32_WINNT 0x0500
#include

void resizeConsole(int width, int height)
{
HWND console = GetConsoleWindow();
RECT r;
GetWindowRect(console, &r);
MoveWindow(console, r.left, r.top, width, height, TRUE);
}
6. Hàm Delay()
Trong codeblock không hỗ trợ hàm Delay() vì thế ta có hàm thay thế là Sleep(), chức năng trì hoãn chương
trình trong một khoảng thời gian
Header file:

#include

Sleep(1200); //trì hoãn 1200ms = 1.2 giây
7. Hiển thị một ký tự c tại toạ độ x, y với màu color
Request: một số hàm đã định nghĩa ở trên

void multiPut(int x,int y,char c, int color)
{
gotoxy(x,y);
textcolor(color);
printf("%c",c);
gotoxy(40,20);
}

8. Thay đổi tiêu đều (Caption) cho chương trình
Header file:

#include

SetConsoleTitle(“My program…”); //title = “My program…”

9. Vẽ một hình chữ nhật có toạ độ 2 đỉnh (trên, trái – dưới, phải) là (x1,y1)-(x2,y2), với màu sắc color, có tiêu đề title và màu tiêu đề là ttColor
Request: một số hàm đã định nghĩa ở trên

class cBoard
{
public:
int x1,y1,x2,y2,width,height;
inline void drawBoard(int x1, int y1, int x2, int y2, int color=14,char *title=NULL,int ttColor=15)
{
int i;
multiPut(x1,y1,(char)218,color); //top-left
multiPut(x2,y1,(char)191,color); //top-right
multiPut(x1,y2,(char)192,color); //bottom-left
multiPut(x2,y2,(char)217,color); //bottom-right
textcolor(color);
for(i=x1;i<x2-1;i++) //top border */
multiPut(i+1,y1,(char)196,color);
for(i=x1;i<x2-1;i++) //bottom border */
multiPut(i+1,y2,(char)196,color);
for(i=0;i<y2-y1-1;i++) /* left border */
multiPut(x1,y1+i+1,(char)179,color);
for(i=0;i<y2-y1-1;i++) /* right border */
multiPut(x2,y1+i+1,(char)179,color);
if (title!=NULL&&strlen(title)<(x2-x1))
for(i=0;i<strlen(title);i++)
multiPut(i+(x2+x1)/2-strlen(title)/2,y1,*(title+i),ttColor);
}
}board;

 

Ví dụ:

int main()
{
clrscr();
SetConsoleTitle("My program...");
system("Color 80");
gotoxy(2,2);
textcolor(12); //red
cout<<char(3); //heart
board.drawBoard(1,1,30,20,14," This is demo program ",15);
gotoxy(2,5);
textcolor(10);
cout<<"What next?";
board.drawBoard(5,7,20,12,9);
resizeConsole(300,350);
getch();
return 0;
}

Kết quả:
cosole_mix

Code in ra màn hình bảng mã Ascii của các ký tự.

#include
#include
main()
{
for(int i=0;i<255;i++)
printf("%3d:%c",i,i);
getch();
}

10. Một số hàm khác với console
system(“help”); //các lệnh trên DOS
// các hàm trong thư viện wincon.h

Một trang web rất hữu ích về Console với C/C++ (các bạn sẽ tìm thấy hàm bắt sự kiện của chuột như ở part5).
http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles1.html
Tra cứu các hàm chuẩn trong C/C++
http://virus.dtvt.org/Documents/cpp.chm
Một số code mẫu của các hàm phía trên.
&&
Source game trên Console với C++
(game shoot đã hoàn thành, game xếp hình đang dở dang)
http://www.mediafire.com/?h9a4ksqhw9v7ag4
Ngoài ra còn 1 game (thả boom) dùng đồ hoạ trên DOS nữa ở đây
http://dtvt.org/dtvt.asp?TID=5894&title=c-game-th%E1%BA%A3-bom-c%E1%BB%B1c-kh%E1%BB%A7ng-graphics-h%C4%91t
Game development ebook
http://www.box.net/shared/xp1g5t6o0s
Một số game đơn giản trên nền console: xếp hình, shoot, đua xe đơn giản, rắn săn mồi… hoặc có thể tìm hiểu thêm về OpenGL hay DirectX, trí thông minh nhân tạo… để phát triển game xài đồ hoạ trên nền win (codeblock có hỗ trợ cái này).

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.