C语言编写五子棋人人对弈学习笔记
1.头文件#include <conio.h>
#include <conio.h>是一个控制输出的头文件。
包含以下函数:textbackground(color)函数【设置文本的背景颜色】;
clrscr()函数【清屏】;
gotoxy()函数【定位】;
getch()函数【输入字符看不见】
在此游戏中可用于判断鼠标落子的位置
2.头文件#include : 是图形库头文件
如何将其导入:1.下载并安装Visual C++ 6.0 (适合win10)参考资料:Caleb_Sung的《支持Win10:科学安装Visual C++ 6.0教程》
后发现不兼容,又参考@bingo_fang的《win10不兼容中文版的VC++6.0解决办法》,然后参考《怎么解决“无法打开包括文件:“graphics.h”:No such file or directory”的问题》导入了图形库头文件
3.RGB函数
RGB函数,计算机颜色函数,返回代表 RGB 颜色值的整数。
语法
RGB(red, green, blue)
RGB 函数的语法有以下参数:
red 必选。0 到 255 间的整数,代表颜色中的红色成分。
green 必选。0 到 255 间的整数,代表颜色中的绿色成分。
blue 必选。0 到 255 间的整数,代表颜色中的蓝色成分。
说明
接受颜色说明的应用程序方法和属性,要求该说明以整数代表 RGB 颜色值。RGB 颜色值指定了红色、绿色、蓝色的相对强度,三色组合形成显示的特定颜色。
低字节值表示红色,中字节值表示绿色,高字节值表示蓝色。
对于要求反转字节顺序的应用程序,下面函数在反转字节顺序下提供相同信息:
Function RevRGB(red, green, blue)
RevRGB= CLng(blue + (green * 256) + (red * 65536))
End Function
RGB 函数中任一超过 255 的参数都假定为 255。
在js网页脚本中的写法:
function jsRGB(b,g,r){
return r65536+g256+b ;
}
4.IMAGE 是一个结构体
原型如下
typedef struct {
int h;
int w;
int c;
float *data;
} image;(不知道为什么可以用)
5.loadimage函数 功能是装载图标,光标,或位图。将图片添加到程序里(个人理解)
用法如下:loadimage(&img,“test.jpg”) ;
6.initgraph(w+150,h)
这个函数用于初始化绘图环境。
HWND initgraph(
int width,
int height,
int flag = NULL
);
参数:
width
绘图环境的宽度。
height
绘图环境的高度。
flag
绘图环境的样式,默认为 NULL。可为以下值:
值 含义
NOCLOSE 禁用绘图环境的关闭按钮。
NOMINIMIZE 禁用绘图环境的最小化按钮。
SHOWCONSOLE 保留原控制台窗口。
返回值:
创建的绘图窗口的句柄。
摘自:原文:/zhao_fu_lu/article/details/23961111
7.句柄
句柄是一个标识符,是拿来标识对象或者项目的。
如果想更透彻一点地认识句柄,我可以告诉大家,句柄类似指向指针的指针,仅仅是类似,通过句柄可以找到对应的数据,但是不是二级指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是驻留在内存中的。简单地理解,似乎我们只要获知这个内存的首地址,就可以随时用这个地址访问对象了。如果您真的这样认为,那您可就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找那一个对象呢?
为了解决这个问题,Windows操作系统为全体应用程序腾出一些内存单元,用来专门登记各应用程序的对象在内存中的地址的变化,而前者的物理地址在系统运行期间是始终保持不变的。Windows内存管理器移动了对象在内存中的位置后,会把该对象新的地址及时地告知给对应的句柄进行更新。这样我们只要知道这个句柄,就可以间接地知道对象具体在内存中的哪个位置了。这个地址是在对象装载(Load)时由系统分配给的,当对象卸载时(Unload)又释放给系统。
8.putimage() 输出图像函数
功能: 函数putimage()将一个先前保存在内存中的图像输出到屏幕上。
用法: 此函数调用方式为void putimage(int left,int top,void *buf,int ops);
说明: 参数(left,top)为输出屏幕图像的左上角,即输出图像的起始位置。buf指向要输出的内存中图像。参数ops控制图像以何种方式输出到屏幕上。表1-13给出了图像输出方式。
表1-13 图像输出方式
输出方式符号名 取值 含 义
COPY_PUT 0 图像输出到屏幕上,取代原有图像
XOR_PUT 1 图像和原有像素作异或运算
OR_PUT 2 图像和原有像素作或运算
AND_PUT 3 图像和原有像素作与运算
NOT_PUT 4 把求反的位图像输出到屏幕上
COPY_PUT输出方式
图像中每个像素都直接绘制到屏幕上,取代原有图像像素,包括空白的图像像素(背景)。完全空白的图像可以用来擦除其它图像或屏幕的一部分。但通常选择xOR_PUT输出方式擦除原有图像。
2)XOR_PUT输出方式
原有屏幕每个像素与相应的图像字节作“异或”运算,其结果画到屏幕上。当某一图像和屏幕上原有图像作“异或”运算时,屏幕显示的是两个图像的合成。若相同的图像作异或运算,将有效地擦除该图像,留下原始屏幕。这种输出方式,对动画制作是非常有用的。
3)OR_PUT输出方式
每个图像字节和相应的屏幕像素作“或”运算,再将结果画到屏幕上,这种输出方式也叫“两者取一”。记住,像素中的每位和图像中的每位作“或”运算,这样所得结果是背景和图像的彩色合成图像。
4)AND_PUT输出方式
选择AND_PUT图像输出方式时,屏幕像素和图像字节中都显示的位,运算后仍显示,例如,星图像中的空白背景擦除了方块轮廓以及填充色,只有星图像复盖着的方块留下,即运算后,显示两者相同的图像。
5)NOT_PUT输出方式
NOT_PUT输出方式,除了把图像的每位求反—图像中所有黑的像素(0000)变成了白色(1111),其它方面与COPy_PUT相同。背景图像被重画后将消失。
putimage()函数对应的头文件为garphics.h
返回值: 无
摘自:
原文:/firetaker/article/details/5582376
9.setlinecolor©; // 设置画线颜色,如setlinecolor(RED)
setfillcolor©; // 设置填充颜色,如setlinecolor(RED)
setbkcolor©; // 设置背景颜色
摘自:原文:/housong_csdn/article/details/53857104
fillrectangle函数原型解析
函数声明:
DFBResult FillRectangle (
IDirectFBSurface * thiz,
int x,
int y,
int w,
int h
);
在平面上画了一个黑色(DirectFB系统默认颜色)的指定大小的矩形,左上定点坐标为(x,y),宽度为w,高度为h。
参数介绍:
thiz:自身指针变量,类似this指针的变量;属于DirectFB的招牌写法。
(x, y):表示DFBRctangle的左上角的坐标位置;
宽度为w,高度为h。
参阅 http18.@TOC