java 俄罗斯方块边界问题
方块到达边界后显示数组越界,怎样才能解决这个问题方块数组为:shape[][][]地图数组为:map[21][38]publicbooleanisLegal(intx,i...
方块到达边界后显示数组越界,怎样才能解决这个问题
方块数组为:shape[][][]地图数组为:map[21][38] public boolean isLegal(int x,int y, int type,int state) { for (int a = 0; a < 4; a++) { for (int b = 0; b < 4; b++) { if ((shape[type][state][a * 4 + b] == 1) &&(map[x + b +1][y + a +1 ] == 1)) { return false; } } } return true; } 展开
方块数组为:shape[][][]地图数组为:map[21][38] public boolean isLegal(int x,int y, int type,int state) { for (int a = 0; a < 4; a++) { for (int b = 0; b < 4; b++) { if ((shape[type][state][a * 4 + b] == 1) &&(map[x + b +1][y + a +1 ] == 1)) { return false; } } } return true; } 展开
展开全部
if(type<shape.legth&&state<春游码扒哪磨贺shape[type].length&&a*4+b<shape[type][state].length)
同理
x+b+1<map.lenght&&y+a+1<map[x+b+1].length
同理
x+b+1<map.lenght&&y+a+1<map[x+b+1].length
更多追问追答
追问
你的方法写错了,还是不能运行
追答
写错了?我只是告诉你判断一下边界而已
你加到:
if ((shape[type][state][a * 4 + b] == 1) &&(map[x + b +1][y + a +1 ] == 1))
{
return false;
}
这个之前,如果不满足那些条件,直接跳过上面这段代码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询