算法棋盘覆盖C++实现.doc

上传人:scccc 文档编号:12373899 上传时间:2021-12-03 格式:DOC 页数:2 大小:37.50KB
返回 下载 相关 举报
算法棋盘覆盖C++实现.doc_第1页
第1页 / 共2页
算法棋盘覆盖C++实现.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《算法棋盘覆盖C++实现.doc》由会员分享,可在线阅读,更多相关《算法棋盘覆盖C++实现.doc(2页珍藏版)》请在三一文库上搜索。

1、#include<iostream> #include<iomanip> using namespace std;int tile=0;int *(*board)=NULL;/ 定义指向指针的指针用于动态的创建用于存储骨牌号的数组int main()void chessBoard(int tr, int tc, int dr, int dc, int size);/ 声明函数int tx=0,ty=0,dx,dy,zsize;/ 定义棋盘的左上角方格、特殊方格的行号和列号以及棋盘大小 cout<<" 请输入特殊方格的行号、列号以及棋盘的大小n&qu

2、ot;/ 其实用户输入cin>>dx>>dy>>zsize;*动态的创建二维数组 */board=new int *zsize; for(int i=0;i<zsize;i+) boardi=new intzsize;/*动态创建数组结束 */boarddxdy=0;/ 特殊方格用 0 填充chessBoard(tx,ty,dx,dy,zsize);/ 输出结果for(int j=0;j<zsize;j+) for(int m=0;m<zsize;m+) cout<<setw(4)<<boardjm;cout<

3、<endl;return 0;void chessBoard(int tr, int tc, int dr, int dc, int size)if (size = 1) return;int t = tile+, / L 型骨牌号 s = size/2; / 分割棋盘/ 覆盖左上角子棋盘if (dr < tr + s && dc < tc + s) / 特殊方格在此棋盘中chessBoard(tr, tc, dr, dc, s); else / 此棋盘中无特殊方格/ 用 t 号 L 型骨牌覆盖右下角boardtr + s - 1tc + s - 1 = t;

4、 / 覆盖其余方格chessBoard(tr, tc, tr+s-1, tc+s-1, s);/ 覆盖右上角子棋盘if (dr < tr + s && dc >= tc + s)/ 特殊方格在此棋盘中 chessBoard(tr, tc+s, dr, dc, s);else / 此棋盘中无特殊方格/ 用 t 号 L 型骨牌覆盖左下角 boardtr + s - 1tc + s = t;/ 覆盖其余方格chessBoard(tr, tc+s, tr+s-1, tc+s, s); / 覆盖左下角子棋盘if (dr >= tr + s && dc &

5、lt; tc + s)/ 特殊方格在此棋盘中 chessBoard(tr+s, tc, dr, dc, s);else /用t号L型骨牌覆盖右上角 boardtr + stc + s - 1 = t;/ 覆盖其余方格chessBoard(tr+s, tc, tr+s, tc+s-1, s);/ 覆盖右下角子棋盘if (dr >= tr + s && dc >= tc + s)/ 特殊方格在此棋盘中 chessBoard(tr+s, tc+s, dr, dc, s);else / 用 t 号 L 型骨牌覆盖左上角 boardtr + stc + s = t;/ 覆盖其余方格 chessBoard(tr+s, tc+s, tr+s, tc+s, s);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1