Я пытаюсь сделать флеш в классической программе игры в покер/карточную игру. Имуществом является костюм (сердца, бриллианты и т. Д.), А массив - это рука. Я использовал IEquatable и реализован метод EqualsИспользование IEquatable Equals, сравнивающее свойство объектов в массиве
public bool Equals(SuperCard otherCard)
{
if (otherCard == null)
return false;
return (this.cardSuit.Equals(otherCard.cardSuit));
}
оттуда в моем Program.cs я пишу метод Его для Flush, используя .equals. мне предложили, чтобы я использовал цикл for, но у меня возникли проблемы с пониманием того, что я делаю это правильно. Мне нужно сравнить свойство cardSuit, карточку по карте. Но я не уверен, как это сделать. Любая помощь будет оценена по достоинству. Вот что я имею в методе до сих пор.
, на мой взгляд, цикл for сравнивает каждую карту, ища любые ложные, а затем возвращает false, если это так. вне/после цикла for (предположим, что theyre all true), я возвращаю true/false для сравнения последних двух карт в руке. я его усложняю? это неправильно?
EDIT: Я вижу это: «если (рука [я] .equals (рука [я + 1]) == ложь)» будет выходить исключения границ, поэтому мне нужен новый способ сравнения карты на карту. Есть идеи?
'hand [han d.Length] 'raise exception – Grundy
try' for (int i = 0; i
Grundy
Да, я поймал это сразу после того, как отправил. спасибо @Grundy – jacksonSD