关注
这是别人写的,可我的编译器变量必须在函数最前面定义啊
#include <stdio.h>
int tile = 1;//全局变量 骨牌编号
int Board[4][4];//棋盘
void ChessBoard(int tr,int tc,int dr,int dc,int size);
int main()
{
int i,j;
for(i=0; i<4; i++)
{
for( j=0; j<4; j++)
{
Board[i][j] = 0;
}
}
ChessBoard(0,0,2,3,4);
for( i=0; i<4; i++)
{
for( j=0; j<4; j++)
{
printf("%d", Board[i][j]);
}
printf("\n");
}
}
/**
* tr : 棋盘左上角的行号,tc棋盘左上角的列号
* dr : 特殊方格左上角的行号,dc特殊方格左上角的列号
* size :size = 2^k 棋盘规格为2^k*2^k
*/
void ChessBoard(int tr,int tc,int dr,int dc,int size)
{
if(size == 1)
{
return;
}
int t = tile++;//L型骨牌编号
int s = size/2;//分割棋盘
//覆盖左上角子棋盘
if(dr<tr+s && dc<tc+s)//特殊方格在此棋盘中
{
ChessBoard(tr,tc,dr,dc,s);
}
else//特殊方格不在此棋盘中
{
//用编号为t的骨牌覆盖右下角
Board[tr+s-1][tc+s-1] = t;
//覆盖其余方格
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的骨牌覆盖左下角
Board[tr+s-1][tc+s] = t;
//覆盖其余方格
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//特殊方格不在此棋盘中
{
//用编号为t的骨牌覆盖右上角
Board[tr+s][tc+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的骨牌覆盖左上角
Board[tr+s][tc+s] = t;
//覆盖其余方格
ChessBoard(tr+s,tc+s,tr+s,tc+s,s);
}
}
int t = tile++;//L型骨牌编号
int s = size/2;//分割棋盘
这两句我调到前面去就错了
查看原帖
点赞 评论
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
351376次浏览 3421人参与
# 我的实习求职记录 #
6084406次浏览 83671人参与
# 北方华创开奖 #
49734次浏览 448人参与
# 地方国企笔面经互助 #
5183次浏览 13人参与
# 职场吐槽大会 #
90613次浏览 751人参与
# 选完offer后,你后悔学本专业吗 #
22966次浏览 165人参与
# 百度开奖 #
212928次浏览 1348人参与
# ai智能作图 #
2988次浏览 65人参与
# 运营商笔面经互助 #
92598次浏览 1333人参与
# 实习中的菜狗时刻 #
278760次浏览 2739人参与
# 腾讯求职进展汇总 #
199329次浏览 1660人参与
# 阿里求职进展汇总 #
70837次浏览 761人参与
# 如果有时光机,你最想去到哪个年纪? #
24615次浏览 501人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
37405次浏览 343人参与
# 风评不好的公司,你会去吗? #
20694次浏览 94人参与
# 上班苦还是上学苦呢? #
90372次浏览 780人参与
# 大疆求职进展汇总 #
413437次浏览 2934人参与
# 国企还是互联网,你怎么选? #
90122次浏览 699人参与
# 远程面试的尴尬瞬间 #
20436次浏览 295人参与
# 软件开发2024笔面经 #
2325555次浏览 48219人参与
# 如何一边实习一边秋招 #
999826次浏览 12697人参与
# 如果中了500万,你会离职吗? #
13497次浏览 144人参与