| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2572 人关注过本帖
标题:[讨论]给大家出一个算法方面的问题
只看楼主 加入收藏
hjj1123
Rank: 1
等 级:新手上路
帖 子:198
专家分:0
注 册:2006-7-29
收藏
得分:0 
恩 ,原理是那样的。上午又想到了一个办法,可以把八M弄成0.5M。你开辟一个0.5M的空START[4000000]间,全部初始化为1,进行前面描述的循环,每填充一个点,便在START数组中相应位子置0。完成一次循环后检查最小地址的1,转换成二维地址,把相应点作为起始点,开始下一次循环,直到START数组中全为0为止。这个办法是利用二维数组和一维数组的一一对应关系作为基础进行的。
我本想写个程序测试下性能和可行性, 由于现在要考研实在没时间和精力,就靠ROCKCARRY大哥去弄了。你要是弄出来的话把测试的结果和代码给我一份hjj1123@sina.com或者放在论坛让大家都 看看这个算法到底怎么样。

下面我给一个我以前写俄罗斯方块是旋转图形的程序,也是采用数组操作的。由于这个程序我以后还有有点小用途,暂时还不能把代码全部贴出来,请大家见谅。这个程序不一定有用,ROCKCARRY看看吧。
/****************************************************************************/
/*功能:方块旋转的处理 */
/*入口参数:i,j */
/*出口参数: 无 */
/*下层函数:TC系统函数,myputimage,mygetimage,drawall,checkmove */
/*converting,inexistence */
/*上层函数:main */
/*补充:无 */
/****************************************************************************/
void move()
{ unsigned int r,s;
unsigned int e[8];
unsigned int h=0;
if(xz>3||xz<0) xz=0;
for(r=0;r<4;r++)
for(s=0;s<4;s++)
if(b[r][s]==1)
{ if(xz%2==0)
{ e[h]=r;
c[h++]=s;
c[h]=r;
e[h++]=s;
}
else{ c[h]=3-s;
e[h++]=r;
c[h]=3-r;
e[h++]=s;
}
b[r][s]=0;
}
minize();
myputimage(i,j,"picture.dat");
if(checkmove())
{
b[c[0]][c[1]]=1;
b[c[2]][c[3]]=1;
b[c[4]][c[5]]=1;
b[c[6]][c[7]]=1;
drawall(i,j,INDEX-1,COLOR,b);
mygetimage(i,j,"picture.dat");
}
else { b[e[0]][e[1]]=1;
b[e[2]][e[3]]=1;
b[e[4]][e[5]]=1;
b[e[6]][e[7]]=1;
myputimage(i,j,"picture.dat");
}
xz++;
}

qq:674940174
2007-08-11 15:03
快速回复:[讨论]给大家出一个算法方面的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014490 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved