对于一些家庭作业,我需要制作一个Tic-Tac-Toe游戏。 我制作游戏没有问题,但是现在我需要控制玩家是否获胜。为此,我需要比较数组中存在的一些Char。 因此,我使用“ if”设置了一个测试,但它向我发送了一个错误(Visual Studio中为CS0019),该错误表明我无法比较char并期望布尔输出。 我该如何规避?
if ((casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0]))
{
V1 = true;
}
答案 0 :(得分:1)
您不能在一行上有(casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0])
并期望它能正常工作。
由于(casesMorpion[0, 0]) != (casesMorpion[1, 0])
是bool
,而您将其与(casesMorpion[2, 0])
是char
进行比较,因此您得到了错误。
您应使用逻辑和&&
将其分为两个条件:
if (casesMorpion[0, 0] != casesMorpion[1, 0] && casesMorpion[1, 0] != (casesMorpion[2, 0]))
{
V1 = true;
}
或者其他什么,因为我不知道您要测试什么。
答案 1 :(得分:1)
我同意@Corentin Pane的回答。他在我面前几秒钟前回答了
以下类似的内容可能会有所帮助
var expectedChar = casesMorpion[0, 0];
if ((expectedChar != casesMorpion[1, 0]) || (expectedChar != casesMorpion[2, 0]))
{
V1 = true;
}
!=两个操作数之间的运算给出布尔值。所以现在它将变为bool!= char,这将导致编译错误。