一.技术要点:
贪吃蛇需要掌握:
c语言函数,枚举,结构体,动态内存管理,预处理指令,链表,Win32 API等
二.Win32 API
1.Win32 API简介
windows可以帮应用程序卡其视窗,描绘图案,使用周边设备,,Win32 API就是windows32位平台上的应用程序编程接口
2.控制台程序
(1).使用cmd命令设置控制台窗口的长宽
输入mode con cols=100 lines=30
(2.)可以通过命令设置控制台的窗口的名字
title xxx
(3.)C语言的system函数实现控制台的命令
#include<stdio.h>
#include<stdlib.h>
int main()
{
system("mode con cols=50 lines=20");
system("title 贪吃蛇");
system("pause");
return 0;
}
(4.)控制台屏幕上的坐标
COORD是windows API中定义的结构体,表示一个字符在控制台屏幕缓冲区上的坐标,坐标(0,0)位于缓冲区左上角
CORRD类型声明:
typedef struct _CORRD
{
SHORT X;
SHORT Y;
}CORRD, *PCORRD;
给结构体定坐标:
#include <windows.h>
CORRD pos = { 10,15 };
(5.)GetStdHandle
它也是一个windows API函数,用于从一个特定的标准设备(标准输入,标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值),使用这个句柄可以操作设备
函数的声明:
HANDLE GetStdHandle(DWORD nStdHandle);
eg.
HANDLE hOutput = NULL;
//获取标准输出的句柄
hOutput = GetStHandle(STD_OUTPUT_HANDLE);
(6.)GetConsoleCursorInfo
检索有关指定控制台屏幕缓冲区的光标大小和可见性信息(鼠标信息)
函数的声明:
BOOL WINAPI GetConsoleCursorInfo(
HANDLE hConsoleOutput
PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);
PCONSOLE_CURSOR_INFO是指向CONSOLE_CURSOR_INFO结构的指针,该结构接受有感主机游标(光标)的信息
eg.
#include <windows.h>
int main()
{
CONSOLE_CURSOR_INFO cursor_info = { 0 };
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleCursorInfo(handle,&cursor_info);
return 0;
}