【发布时间】:2012-12-10 00:36:42
【问题描述】:
有人可以解释以下返回语句的用途/含义:t > 1;(参见最后一个 if 语句最后一个方法)
代码来自一个名为“黑白棋”的游戏http://en.wikipedia.org/wiki/Reversi
这个方法检查你是否围住了另一个玩家的棋子。
public bool allowed(int x, int y, bool player)
{
int color;
if(player == true) // true = player is blue.
color= 1;
else color= -1;
if(stone[x,y] != 0)
return false;
else
{
for (int dx = -1; dx <= 1; dx ++)
{
for (int dy = -1; dy <= 1; dy ++)
{
if (dx != 0 || dy != 0) // 0, 0 must be skipped, own stone.
{
if (close(color, x, y, dx, dy))
return true;
}
}
}
}
return false;
}
public bool close(int color, int x, int y, int dx, int dy)
{
int s;
int testx;
int testy;
for(int t=1; t<stone.Length;t++)
{
testx = x + t * dx;
testy = y + t * dy;
if(testx >= board.Width || testx <= 0 || testy >= board.Heigth|| testy <= 0)
return false;
s = stone[x + t * dx, y + t * dy];
if (s == 0) return false;
if (s == color) return t>1;
}
return true;
}
【问题讨论】:
-
if(t>1) return true; else return false;会更好让你理解吗? -
t > 1计算结果为bool。 -
是的,扬·德沃夏克。更有意义,谢谢!但是我可以用“return true”替换 t>1 吗?因为 t 总是大于 1
-
@user1924193 如果它返回第一个
stone,它不会大于一个。 -
谢谢!我现在很清楚了。
标签: c# .net boolean return reversi