下载此文档

C语言编写象棋程序代码.docx


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
.
/**/#include""#include""/**/#defineRED7#defineBLACK14#definetrue1#definefalse0#defineSELECT0#defineMOVE1#defineRED_UP5,255,255,255,255,255,255,0,0,1,1,1,0,255,255,255,255,255,255,255,255,255,0,0,1,1,0,255,255,0,255,255,255,255,255,255,255,0,0,1,0,255,0,1,1,0,255,255,255,255,255,255,255,0,0,0,1,1,1,1,0,255,255,255,255,255,0,1,0,1,1,1,1,1,1,0,255,255,255,0,1,1,1,1,1,1,1,1,1,1,0,255,0,1,1,1,
1,1,1,1,1,1,1,1,1,0,1,1,1,1};
structpos{
intx;
inty;}position[10][9],redcurpos,redtemppos,redoldpos,blackcurpos,blacktemppos,blackoldpos;/**/selectpage(registercharpage)/*换页函数*/{
unionREGSr;
/*选择页面*/int86(0x10,&r,&r);}unsignedcharset_SVGA_mode(intvmode)/*设置SVGA屏幕模式*/{
unionREGSr;
int86(0x10,&r,&r);
returnintget_SVGA_mode()/*获取当前SVGA屏幕模式*/{
unionREGSr;
int86(0x10,&r,&r);
returnstart_x,intstart_y,charfilename[]){
charbuffer[640];
inti,j,k,n,r,g,b,width,length;
longposition;
FILE*fp;
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Error!Can'topenfile!");
getch();
return;
}
fseek(fp,28,SEEK_SET);
fread(&i,2,1,fp);
if(i!=8)/*检查是否为256色位图*/
{
puts("Error!Can'tfindbitmap!");
fclose(fp);
getch();
exit(0);
}
fseek(fp,18,SEEK_SET);
fread(&width,4,1,fp);
fread(&length,4,1,fp);
if(firsttime)
{
fseek(fp,54,SEEK_SET);
for(i=0;i<256;i++)/*按照该图片的DAC色表设置色彩寄存器*/
{
b=fgetc(fp);g=fgetc(fp);r=fgetc(fp);/*获取RGB分量*/
outportb(0x3c8,i);
outportb(0x3c9,r>>2);/*右移是要转化为VGA的6位寄存器形式*/
outportb(0x3c9,g>>2);
outportb(0x3c9,b>>2);
fgetc(fp);
}
}
else
fseek(fp,300,SEEK_SET);
k=(width%4)?(4-width%4):0;/*宽度修正值*/
for(j=length-1+start_x;j>=start_x;j--)
{
fread(buffer,width,1,fp);
for(i=start_y,n=0;i<width+start_y;i++,n++)
{
position=j*640l+i;/*计算要显示点的显存位置*/
page_new=position/65536;/*计算显示页*/
if(page_new!=page_old)/*当显示页不同时更换页面,提高一定的输出速度*/
{selectpage(page_new);page_old=page_new;}pokeb(0xa000,position%65536,buffer[n]);/*写到显存位置*/
}
fseek(fp,k,SEEK_CUR);/*每行绘制完后修正宽度*/
}
fclose(fp);}init(){
savemode=get_SVGA_mode();/*先保存原来的屏幕模式*/set_SVGA_mode(0x101);/*硬件无关性初始

C语言编写象棋程序代码 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wenjiaosuoa
  • 文件大小23 KB
  • 时间2022-04-02