vc实现棋盘覆盖算法

时间:2012-06-09 12:55:43
【文件属性】:

文件名称:vc实现棋盘覆盖算法

文件大小:34KB

文件格式:RAR

更新时间:2012-06-09 12:55:43

vc

void CMyDlg::chessBoard(int tr, int tc, int dr, int dc, int size) { if(1 == size) { return; } Sleep(1000); //覆盖L型骨牌后停顿0.01秒,以便观察 int t = this->tile++; int s = size/2; if(dr < tr+s && dc < tc+s) chessBoard(tr,tc,dr,dc,s); else { board[tr+s-1][tc+s-1] = t; chessBoard(tr,tc,tr+s-1,tc+s-1,s); this->DrawSubBoard(tr+s-1,tc+s-1,m_dw,t);//递归过程中,此子棋盘中没有特殊方格,调用DrawSubBoard()函数画一个方格,并填充颜色 } if(dr < tr+s && dc >= tc+s) chessBoard(tr,tc+s,dr,dc,s); else { board[tr+s-1][tc+s] = t; chessBoard(tr,tc+s,tr+s-1,tc+s,s); this->DrawSubBoard(tr+s-1,tc+s,m_dw,t); } if(dr >= tr+s && dc < tc+s) chessBoard(tr+s,tc,dr,dc,s); else { board[tr+s][tc+s-1] = t; chessBoard(tr+s,tc,tr+s,tc+s-1,s); this->DrawSubBoard(tr+s,tc+s-1,m_dw,t); } if(dr >= tr+s && dc >= tc+s) chessBoard(tr+s,tc+s,dr,dc,s); else { board[tr+s][tc+s] = t; chessBoard(tr+s,tc+s,tr+s,tc+s,s); this->DrawSubBoard(tr+s,tc+s,m_dw,t); } }


【文件预览】:
分治解决棋盘覆盖问题
----分治解决棋盘覆盖问题Dlg.cpp(9KB)
----StdAfx.cpp(222B)
----分治解决棋盘覆盖问题Dlg.h(2KB)
----分治解决棋盘覆盖问题.opt(48KB)
----分治解决棋盘覆盖问题.h(1KB)
----分治解决棋盘覆盖问题.rc(7KB)
----分治解决棋盘覆盖问题.ncb(81KB)
----分治解决棋盘覆盖问题.plg(1KB)
----分治解决棋盘覆盖问题.cpp(2KB)
----分治解决棋盘覆盖问题.dsp(5KB)
----分治解决棋盘覆盖问题.dsw(565B)
----分治解决棋盘覆盖问题.clw(2KB)
----ReadMe.txt(4KB)
----StdAfx.h(1KB)
----Resource.h(1KB)
----RCa03548(13KB)
----分治解决棋盘覆盖问题.aps(24KB)

网友评论