eclipse怎么编程棋盘覆盖界面

eclipse怎么编程棋盘覆盖界面,第1张

首先在Eclipse中创建一个Java程序,然后在src下面添加三个包,分别为bin.image(主要用来存放图片资源),org.wzq(主要用来存放五子棋的游戏程序),org.work(主要用来存放主程序)。然后在org.work新建一个包含main函数Main类;在org.wzq新建一个Wzqclass类,同时让它继承自JFrame类,实现MouseListener, Runnable两个接口,不包含main函数。

int t=++tile这个tile是什么定义?通篇都没有见到啊~

Board[tr+s-1][tc+s-1]=tBoard是什么函数,也没见到~

能不能把整个程序的语言放上来呢?

另外,我想说,用L型覆盖的话,每次四等分后,不一定能覆盖掉其中一块哦,你的L型是什么样的呢?3-1还是2-1?如果是3-1,那意味着边长是4的倍数才能简单覆盖哦~

看得我眼晕...目前看到一个小问题

//覆盖左上角棋盘

if(dr<tr+s &&dc<tc+s)

//特殊方格在此棋盘中

ChessBoard(tr,tc,dr,dc,s)

else{//此棋盘中无特殊方格,用T号L型骨牌覆盖右下角

Board[tr+s-1][tc+s-1]=t

//覆盖其余方格 <------------------------------------下面那句话有点问题啊,你以左上角最右下角的那个格子为特殊格再次chessboard了

ChessBoard(tr,tc,tr+s-1,tc+s-1,s)}

下面讨论棋盘覆盖问题中数据结构的设计。

(1)棋盘:可以用一个二维数组board[size][size]表示一个棋盘,其中,size=2^k。为了在递归处理的过程中使用同一个棋盘,将数组board设为全局变量;

(2)子棋盘:整个棋盘用二维数组board[size][size]表示,其中的子棋盘由棋盘左上角的下标tr、tc和棋盘大小s表示;

(3)特殊方格:用board[dr][dc]表示特殊方格,dr和dc是该特殊方格在二维数组board中的下标

(4) L型骨牌:一个2^k×2^k的棋盘中有一个特殊方格,所以,用到L型骨牌的个数为(4^k-1)/3,将所有L型骨牌从1开始连续编号,用一个全局变量t表示。

设全局变量t已初始化为0,分治法求解棋盘覆盖问题的算法用C++语言描述如下:

void ChessBoard(int tr, int tc, int dr, int dc, int size)

{

int s, t1//t1表示本次覆盖所用L型骨牌的编号

if (size == 1) return//棋盘只有一个方格且是特殊方格

t1 = ++t// L型骨牌编号

s = size/2// 划分棋盘

if (dr <tr + s &&dc <tc + s) //特殊方格在左上角子棋盘中

ChessBoard(tr, tc, dr, dc, s)//递归处理子棋盘

else{ //用 t1号L型骨牌覆盖右下角,再递归处理子棋盘

board[tr + s - 1][tc + s - 1] = t1

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 { //用 t1号L型骨牌覆盖左下角,再递归处理子棋盘

board[tr + s - 1][tc + s] = t1

ChessBoard(tr, tc+s, tr+s-1, tc+s, s)

}

if (dr >= tr + s &&dc <tc + s) //特殊方格在左下角子棋盘中

ChessBoard(tr+s, tc, dr, dc, s)//递归处理子棋盘

else { //用 t1号L型骨牌覆盖右上角,再递归处理子棋盘

board[tr + s][tc + s - 1] = t1

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 { //用 t1号L型骨牌覆盖左上角,再递归处理子棋盘

board[tr + s][tc + s] = t1

ChessBoard(tr+s, tc+s, tr+s, tc+s, s)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11118338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存