我需要在x,y坐标上设置阈值,以便我可以分析围绕这些坐标的数字。基本上我需要在x下方设置一个低阈值1,在y下面设置1,并设置一个高于x的高阈值1和高于y的高阈值。
我也有限制,因此如果x或y为0,则低阈值为0,如果x或y为9,则高阈值为9
我到目前为止的代码如下: - 对于y来说它是相同的所以我只发布了找到x的阈值...
bool CheckNextTo(int X, int Y){
int LowThreshX,LowthreshY;
int HighThreshX,HighThreshY;
if (X == 0){
LowThreshX =0;
HighThreshX =X+1;
}
else if (X== 9){
LowThreshX =X-1;
HighThreshX=9;
}
else{
LowThreshX=X-1;
HighThreshX=X+1;
}
}
这有效我只是在游荡,如果有一个更简单的方法来做到这一点,因为我将不得不再写这一切来计算Y阈值。我知道我可以编写返回阈值的函数但除此之外还有其他什么吗?
由于
答案 0 :(得分:2)
您可以使用内置多种语言的三元if运算符(包括C和C ++)
(条件?然后:其他)
LowThresholdX= (X == 0 ? 0 : X-1);
HighThresholdX= (X == 9 ? 9 : X+1);
LowThresholdY= (Y == 0 ? 0 : Y-1);
HighThresholdY= (Y == 9 ? 9 : Y+1);
答案 1 :(得分:1)
我还没有真正明白你想要什么,但是不加重复地写东西可能会让事情变得更清楚。
您的代码变为:
bool CheckNextTo(int X, int Y){
int LowThreshX = X-1;
int HighThreshX = X+1;
if (X == 0){
LowThreshX = 0;
}
else if (X == 9){
HighThreshX = 9;
}
}
也可以写成:
bool CheckNextTo(int X, int Y){
int LowThreshX = X-1;
int HighThreshX = X+1;
if (X == MIN){
LowThreshX = X;
}
else if (X == MAX){
HighThreshX = X;
}
}
答案 2 :(得分:1)
Min
和Max
函数派上用场:
LowThresholdX= Max(0, X-1);
HighThresholdX= Min(9, X+1);
LowThresholdY= Max(0, Y-1);
HighThresholdY= Min(9, Y+1);
答案 3 :(得分:0)
试试这个:
bool CheckNextTo(int X, int Y){
int LowThreshX = MAX(0,X-1);
int LowThreshY = MAX(0,Y-1);
int HighThreshX = MIN(9,X+1);
int HighThreshX = MIN(9,Y+1);
}
MAX,MIN是宏函数或std :: max / min。
你可以把它写成一个函数,但这取决于你的其他代码是如何工作的,而你没有向我们展示过。