【发布时间】:2018-10-01 08:15:15
【问题描述】:
我一直在尝试创建一个黑白棋游戏,但我似乎无法检查是否存在不存在的案例(检查黑色标记,如果不存在,则不要执行任何操作)
private void CaseClick(object sender, MouseEventArgs e)
{
Case allCases = (Case)sender;
int a = 1;
if (allCases.ColorToken == Case.Token.Nothing)
{
Case caseToModify;
if (_turnIsBlack)
{
//Verify tokens from top to bottom
if (Cases[allCases.Position.X, allCases.Position.Y + a].ColorToken == Case.Token.White)
{
while (Cases[allCases.Position.X, allCases.Position.Y + a].ColorToken == Case.Token.White)
{
caseToModify = Cases[allCases.Position.X, allCases.Position.Y + a];
allCases.ColorToken = Case.Token.Black;
caseToModify.ColorToken = Case.Token.Black;
a++;
caseToModify.Refresh();
allCases.Refresh();
_turnIsBlack = false;
}
}
}
}
}
我只是想知道是否有办法检查不存在的黑色令牌。不需要针对这个特定的代码,只是一个检查某事的例子,如果它不存在,什么都不做
位置分配有坐标,例如 (0,0) (1,1),游戏是 8x8,每个案例都分配一个坐标
【问题讨论】:
-
检查是否为空?
if (allCases.ColorToken == null)? -
不关注这里。我不知道
Case是什么,我不确定你的代码在做什么。我不知道您在这段代码中的哪个位置检查黑色令牌,也不知道这将如何在您的代码中工作。对于一些非常具体和基于上下文的代码,我们有点盲目,没有具体细节或上下文。完全断章取义的回答:If (case = black ){ do something }将是您检查“案例”不是黑色的方式,所以什么都不做。我怀疑这就是您正在寻找的答案。 -
@JNevill Case 是一个创建的定义板的类,我没有在代码中放入检查令牌是否为黑色的代码,因为它甚至无法正常工作。当我检查一个案例是否为黑色时,由于某种原因它仍然会忽略它。这将是我尝试检查它是否为黑色的示例之一:
if (Cases[allCases.Position.X, allCases.Position.Y + a].ColorToken == Case.Token.Black {break;} -
如果您正在寻找更好的建议,我认为这个问题非常适合代码审查堆栈交换并发布您拥有的所有内容。
标签: c# if-statement while-loop visual-studio-2017