| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2953 人关注过本帖
标题:千金求 马踏棋盘 代码 急用~!
只看楼主 加入收藏
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

void SaveToFile(void) //------------------------------------------------------

{

int ft[WIDTH][WIDTH];

int step=0;

HorsePoint pos;

FILE *pfile;

if(scount==MAX_LEN)

{

for(int i=0;i<MAX_LEN;i++)//将路径数据转存到棋盘模型中

{

step++;

pos=Path[i];

ft[pos.x][pos.y]=step;

}

if((pfile=fopen(FILE_NAME,"w"))!=NULL)//保存至文件

{

for(int i=0;i<WIDTH;i++)

{

for(int j=0;j<WIDTH;j++)

{

if(ft[i][j]<10)

{

fprintf(pfile," ");//补齐格式用的空格

}

fprintf(pfile,"%d ",ft[i][j]);

}

fprintf(pfile,"\n");

}

fclose(pfile);

system("notepad.exe rt.txt");

}

else

{

printf("\t\t\t\t输出文件打开错误,请检查文件属性和文件系统属性\n");

system("PAUSE");

}

}

else

{

printf("\t\t\t\t任务未完成或失败,没有有效数据\n");

system("PAUSE");

}

}


我的征途是星辰大海
2005-09-13 15:49
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

文件datastruct.h

/*

Name: datastruct.h

Copyright: Copyright@1999-2004, Gashero Liu.

Author: Gashero Liu.

Date: 16-11-04 12:25

Description: 数据结构的定义头文件

*/

typedef struct horsepoint

{

int x;

int y;

int dir; //下一步的走向,初始化-1,有效0-7

}HorsePoint;

typedef enum cmdchar

{

CMD_NEW, /*输入一个新的初始坐标点*/

CMD_TABLE, /*输出棋盘模型*/

CMD_STEP, /*输出步进模型*/

CMD_SAVE, /*保存至文件*/

CMD_EXIT, /*退出程序*/

}CmdChar;

#define WIDTH 8

#define MAX_LEN 64

#define MAX_DIR 8

#define INVALID_DIR -1

#define FILE_NAME "rt.txt"


我的征途是星辰大海
2005-09-13 15:49
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

调试分析

程序中的指针操作多次出现错误,尤其发生在操作栈中的方向分量时,由于操作的失误,开始实际未保存此数据,导致第47次循环需要回溯时进入死循环。后改用Visual Studio 2003VC++.net中的调试工具发现栈内的所有dir分量值均为-1。后改正即可。因为这个问题,我重写了一次整个程序。

用户手册

首页菜单选项,按下中括号内的字符即可进入相关功能。需要输入数据后方可按照3中形式输出数据,输入数据格式为2个数字使用逗号分隔。

棋盘输出为一次完全输出整个棋盘信息。

步进输出每次仅前进一步,之后按下任意键前进。

保存至文件rt.txt则将结果存入可行性文件所在目录下的rt.txt文件内,并同时开启记事本显示保存文件内容。

按下x键退出程序

测试结果

经测试有些路点的数据计算量极大,其中(4,4)点使用AMD1.2GhzCPU计算了2个多小时,完成了850亿个有效路点的入栈尝试仍然没有算出结果。我也因为数据的问题而三次重写整个程序。所以推荐使用如下测试数据。有效入栈次数超过10亿次的数据均略掉(计算时间将超过5分钟)。数据后为实测的有效入栈次数:

初始坐标点

有效路点入栈次数

0,0

6,484,065

0,3

18,305,907

0,7

16,501,401

2,3

217,047,959

2,4

4,504,281

7,0

503,650,751

7,7

54,482,161

(在此仅列出x=0,1,2的全部数据和另外两个数据)


我的征途是星辰大海
2005-09-13 15:50
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
声名: 转载自http://www.7622.com/list/49705.htm 作 者 刘晓明 发布者 e5022 请楼主使用时标明出处和作者

我的征途是星辰大海
2005-09-13 15:55
方方
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-6-11
收藏
得分:0 

太感谢了!

2006-06-17 14:18
氤氲
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-7-5
收藏
得分:0 
太强了!!!!!
2006-07-05 18:32
快速回复:千金求 马踏棋盘 代码 急用~!
数据加载中...
 
   



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

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