用scanf()当然是不可能实现的!
你先找yaobao,他用过Win-TC,让他教你先实现了定位、变色和接受键盘按键,然后你设计一个运行画面,才能告诉你怎么实现。你只要学会把光标在屏幕上到处游走、随意改变字符颜色,就可以了。
你先找yaobao,他用过Win-TC,让他教你先实现了定位、变色和接受键盘按键,然后你设计一个运行画面,才能告诉你怎么实现。你只要学会把光标在屏幕上到处游走、随意改变字符颜色,就可以了。
授人以渔,不授人以鱼。
graphics.lib图形库文件 graphics.h 图形头文件 goth.chr 黑体字符集 void far initgraph(int far *driver,int far *mode,char far *path_for_drive) 图形系统初始化函数 void far cleardeice(void)清屏函数,该函数作用范围为整个屏幕 void far clearviewport(void)清除图视口函数,仅清除图视口区域内的内容 void far closegraph(void) 恢复显示方式函数,关闭图形系统 void far restorecrtmode(void)恢复显示方式函数,不关闭图形系统,适配器的驱动程序和字符集仍驻留内存 void far putpixel(int x,int y,int color)画点函数,以x,y为坐标,color为颜色画点 int far getpixel(int x,int y)取像素色值函数,得到(x,y)点位置上的像素的色值 void far moveto(int x,int y)移动画笔到(x,y)位置,移动过程不画 void far moverel(int dx,int dy)画笔从(x,y)移动到一位置增量处(x+dx,y+dy),移动过程不画 int far getx(void)得到当前画笔所在x位置 int far gety(void)得到当前画笔所在y位置 void far line(int x0,int y0,int x1,int y1)划线函数,从(x0,y0)到(x1,y1)画一直线 void far linto(int x,int y)从画笔现在位置到(x,y)点划线 void far linerel(int dx,int dy)从现在画笔位置(x,y)到位置增量处(x+dx,y+y)划线 void far rectangle(int x1,int y1,int x2,int y2)以(x1,y1)为左上角,以(x2,y2)为右下角画矩形框 void bar(int x1,int y1,int x2,int y2)以(x1,y1)为左上角,(x2,y2)为右下角画实行条状图,图的颜色和填充模式可以设定,否则使用默认 void ellipse(int x,int y,int stangle,int endangle,int xradius,int yradius)画椭圆函数,以(x,y)为中心,以xradius和yradius为x,y轴,以stangle为起始角,以endangle为结束角画椭圆 void far circle(int x,int y,int radius)以(x,y)为圆心,以radius为半径画圆 void far arc(int x,int y,int stangle,int endangle,int radius)以(x,y)圆心,以radius为半径,以stangle为起始角,以endangle结束角画圆弧 void far pieslice(int x,int y,int stangle,int endangle,int radius)以(x,y)为圆心,radius为半径,stangle为起始角,endangle为结束角画扇形,扇形的填充模式和填充颜色可预先设定,否则为默认 void far setcolor(int color)前景色设置函数 颜色值 颜色名 颜色 颜色值 颜色名 颜色 0 BLACK 黑 8 DARGRAY 深灰 1 BLUE 蓝 9 LIGHTBLUE 浅蓝 2 GREEN 绿 10 LIGHTGREEN 浅绿 3 CYAN 青 11 LIGHTCYAN 浅青 4 RED 红 12 LIGHTRED 浅红 5 MAGENTA 洋红 13 LIGHTMAGENTA 浅洋红 6 BROWN 棕 14 YELLOW 黄 7 LIGHTGRAY 浅灰 15 WHITE 白 void far setbkcolor(int color)设置背景颜色函数 void far setpalctte(int index,int octual_color)调色板设置函数,index设置调色板寄存器,octual_color设置颜色 void far setallpalette(struct palettetype far *palette)改变调色板16种颜色函数,其中结构palettetype定义为: #define MAXCOLORS 15 struct palettetype { unsigned char size; signed char color[MAXCOLORS+1] };size由适配器类型和当前模式调色板颜色数决定,即调色板寄存器数,colors代表调色板寄存器 void far getpalette(struct palettetype far *palettetype)得到调色板颜色数(即调色板寄存器个数)的函数和装入的颜色值,把得到的信息存入由palette指向的结构体种。 void far getpalettesize(void)得到调色板颜色数 void far setlinestyle(int linestyle,unsigned upattern,int thickness)设定线形函数,thickness为线形宽度,linestyle为线形参数 void far getlinesettings(struct linesettingstype far *lineinfo)得到当前有关画线信息,把得到的信息存放到lineinfo指向的结构体, struct linesetttinrstyle { int linestyle; unsigned upattern; int thickness; }; void far setfillstyle(int pattern,int color)填色函数,用设定的color颜色和pattern图模式对后面画出的轮廓进行填充 填充模式(pattern)的规定 符合名 值 含义 EMPTY_FILL 0 用背景色填充 SOLID_FILL 1 用单色填充 LINE_FILL 2 用“—”线填充 LTSLASH_FILL 3 用"//"线填充 SLASH_FILL 4 用粗“//”线填充 BKSLASH_FILL 5 用“\\”线填充 LTBKSLASH_FILL 6 用粗“\\”线填充 HATCH_FILL 7 用方网格线填充 XHATCH_FILL 8 用斜网格线填充 INTTERLEAVE_FILL 9 用间隔点填充 WIDE_DOT_FILL 10 用稀疏点填充 CLOSE_DOT_FILL 11 用密集点填充 USER_FILL 12 用户自定义样式填充 void far setfillpattern(char *upattern,int collor)用户自定义填充函数用color(寄存器号)对封闭图形填色,upattern是指向8个字节的存储区指针, int random(int num)随机数字产生函数,函数返回一个0到num-1之间的随机函数 int kbhit(void)检查当前是否有键盘输入,若有返回非0值,否则返回0,函数包含于头文件conio.h中 void far fillsettings(struct fillsettingstype far * fillinfo)得到填充模式和颜色函数,将得到的信息存入info指向的结构体种,该结构体为: struct fillsettingstype { int pattern;(当前填充模式) int color;(填充颜色) }; void far getfillpattern(char *upattern)把用户自定义的填充模式和颜色存入upattern所指向的内存区域 void far bar3d(int x1,int y1,int x2,int y2 int depth,int topflag)画三维立体直方图函数,当topflag为非0是能画出三维图,depth决定了三维直方图的长度 void far sector(int x,int y,int stangle,int endangle,int xradius,int yradius)画椭圆扇形函数 void far fillellipse(int x,int y,int xradius,int yradius)画椭圆图函数 void far fillpoly(int numpoints,int far *polypoints)画多边形图函数,函数画出定点数十numpoints,各定点坐标由polypoints给出,numpoints应为定点数加一,且最后一个的坐标应和第一个重合 void far floodfill(int x,int y,int border)对任意封闭图形惊喜填充函数(x,y)为封闭区域内任意一点,border是封闭边框的颜色 void far getimage(int x1,int y1,int x2,int y2,void far *bitmap)存屏幕图像到内存的函数,把左上角(x1,y1),右下角(x2,y2)的矩形区域内的图像保存到bitmap指向的内存区 unsigned far imagesize(int x1,int y1,int x2,int y2)测定屏幕左上角为(x1,y1)右下角为(x2,y2)矩形区域内图像所占字节 void far putimage(int x1,int y1,void far *bitmap,int op)显示所存图像函数,,函数吧bitmap指向内存中所装的图像于屏幕上左上角为(x1,y1)的矩形内图像进行op规定操作后显示在屏幕上 op规定值及操作 符合名 值 含义 COPY_PUT 0 复制 XOR_PUT 1 进行异或操作 OR_PUT 2 进行或操作 AND_PUT 3 进行与操作 NOT_PUT 4 进行非操作 void far setactivepage(int pagenum)设置激活页 void far setvisualpage(int pagenum)设置显示页 void far outtext(char far *textstring)当前位置文本输出函数,在当前位置输出由textstring所指向的字符串。 void far outtextxy(int x,int y,char far *textstring)在指定的(x,y)位置输出textstring指向的字符串。(x,y)的位置需要用settextjustify()来确定。 void far settextjustify(int horiz,int vert)文本输出位置函数,horiz决定水平位置,vert决定垂直位置 参数horiz的取值 LEFT_TEXT 0 输出左对齐 CENTER_TEXT 1 输出以字符中心对齐 RIGHT_TEXT 2 输出右对齐 参数vert的取值 BOTTOM_TEXT 0 底部对齐 CENTER_TEXT 1 中心对齐 TOP_TEXT 2 顶部对齐 void sprintf(char *string,char *format[,argument,...])文本输出字符串函数,该函数把变量值argument按format指定的歌声输出到string所指向的字符串中 void far setviewport(int left,int top,int bottom,int clipflag)为图形输出设置当前视口 void far settextstyle(int font,int direction,int char size)定义文本字形函数,函数用来设置文本输出的字形,大小和方向,font设置字形 font的取值 符号名 值 含义 DEFAULT_FONT 0 8乘8字符点阵(默认值) TRIPLEX_FONT 1 三倍笔画字体 SMALL_FONT 2 小字笔画字体 SANS_SERIF_FONT 3 无衬线笔画字体 GOTHIC_FONT 4 黑体笔画字体 direction的取值 HORIZ_DIR 0 水平输出 VERT_DIR 1 垂直输出 char size的取值 符号名或值 含义 符号名或值 含义 1 8乘8点阵 7 56乘56点阵(默认值) 2 16乘16点阵 8 64乘64点阵 3 24乘24点阵 9 72乘72点阵 4 32乘32点阵 10 80乘80点阵 5 40乘40点阵 USER_CHAR_SIZE=0 用户自定义字符大小 6 48乘48点阵