Сравнить Char в массиве - PullRequest
       3

Сравнить Char в массиве

0 голосов
/ 13 октября 2019

Для некоторых HomeWork мне нужно сделать игру в крестики-нолики. Я делаю игру без проблем, но теперь мне нужно контролировать, побеждает ли игрок. Для этого мне нужно сравнить некоторые Char, присутствующие в массиве. Поэтому я настроил тест с «если», но он отправляет мне сообщение об ошибке (CS0019 в Visual Studio), в котором говорится, что я не могу сравнить char и ожидать вывод bool. Как мне обойти это?

if ((casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0]))
{
  V1 = true;
}

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Я согласен с ответом @Corentin Pane. Он ответил всего за несколько секунд до меня

Некоторые вещи, подобные приведенным ниже, могут помочь

var expectedChar = casesMorpion[0, 0]; 
if ((expectedChar != casesMorpion[1, 0]) || (expectedChar != casesMorpion[2, 0]))
{
    V1 = true;
}

! = Операция между двумя операндами вызывает бул. так что теперь он станет bool! = char это даст ошибку компиляции.

1 голос
/ 13 октября 2019

Вы не можете иметь (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;
}

или чем-то еще, поскольку я точно не знаю, кто выпытаюсь проверить.

...