yoyohenry 发表于 2006-9-9 13:35:14

竟又坐了沙发~

麻烦斑竹转到新品区去

Isword 发表于 2006-9-9 14:13:10

支持啊!!!!

leesoft 发表于 2006-9-9 21:37:27

祝贺!
super mario是把每个8*8字模压缩为5*3。

zhaofeixxx 发表于 2006-9-9 13:30:53

掏金者可以玩啦!(用我的编译器编的)

http://photo2.hexun.com/p/2006/0909/43263/b_018FA3B00B313AFD.jpg
适合nc3000!
其它的我不知键盘io和文件读取函数,大家告诉我
sxzc上下左右,f4开始,f1复位,f2选,下右:AB
垂直滚动是我编的,其它的要感谢lee哥!!
我不会压缩字模,于是写了这个来压缩,但效果不好,lee哥和高手教我

int fp;
char mem;
char pic;
char text;
char bit={128,64,32,16,8,4,2,1};
void xuan()
{
char n;
char name;
char dirname;
char filename;
int i,j;
i=0;
sprintf(n,"%s","/");
for(;;)
{
memset(dirname,0,50);
for(j=0;j<=i;j++)strcat(dirname,n);
ChDir(dirname);
if(!FileList(filename))
{
i--;
if(i<0)exit(0);
}
else
{
sprintf(text,"%s/%s",dirname,filename);
if(ChDir(text))
{
i++;
sprintf(n,"%s",filename);
}
else
{
sprintf(name,"%s",filename);
return;
}
}
}
}

int getPoint(int x,int y)
{
int i;
long addr;
addr=_GRAPH+y*20+x/8;
i=x%8;
if(*(addr)&bit)return 1;
else return 0;
}

void main()
{
int i,j,m,n;
SetScreen(1);
Locate(2,8);
printf("FC转文曲星\n      字模压缩器");
getchar();
MakeDir("/LavaData");
xuan();
fp=fopen(text,"r");
ClearScreen();
Refresh();
for(i=0;i<1024;i++)
{
if(CheckKey(27))exit(0);
Box(1,8,50,16,1,0);
Box(1,75,1+158*i/1023,79,1,1);
fread(pic,1,8,fp);
WriteBlock(8,8,8,8,65,pic);
for(n=0;n<8;n++)
{
for(m=0;m<7;m++)
{
if(GetPoint(m+8,n+8)&&GetPoint(m+9,n+8))
{
Point(m/2+24,n+8,1);
if(i<512)Point(31-m/2,n+8,1);
}
}
}
for(m=0;m<8;m++)
{
if(GetPoint(m+24,8)||GetPoint(m+24,9))Point(m+40,8,1);
if(GetPoint(m+24,11)||GetPoint(m+24,12))Point(m+40,9,1);
if(GetPoint(m+24,14)||GetPoint(m+24,15))Point(m+40,10,1);
}
GetBlock(40,8,8,4,64,mem+i*4);
}
fclose(fp);
fp=fopen("/LavaData/字模.dat","w+");
fwrite(mem,1,4096,fp);
fclose(fp);
exit(0);
}
页: [1]
查看完整版本: 掏金者可以玩啦!(用我的编译器编的)