ОК. Мне нужно разработать способ, чтобы отслеживать, сколько существует каждого элемента.
Есть приблизительно 26 пунктов. Мне также нужен способ узнать, существует ли определенная комбинация предметов.
Например,
Это движок для карточной игры. Каждая карта имеет свой тип, и к каждой карте может быть прикреплена карта.
Для выполнения определенных действий в игре игрок должен иметь определенную комбинацию карт.
Чтобы упростить эту программу, я хотел бы сделать что-то вроде
if (meetsCrit(2, water, 4, ground))
{
do this()
}
else
{
displayerror()
}
РЕДАКТИРОВАТЬ: решено!
Я использовал комбинацию техник, описанную в нескольких постах ниже.
Специальное упоминание:
Джон Скит,
Ринат Абдуллин,
Франк,
Во всяком случае, вот что я сделал
Я создал класс с именем pair, который хранит искомый тип и номер этого типа.
Затем я использовал делегат предиката, чтобы найти все эти типы и посчитать, сколько их,
Затем я сравнил его с числом, которое искал, и вернул соответственно true или false.
Это код для него
public bool meetsCrit(params Pair[] specs)
{
foreach (Pair i in specs)
{
if (!(attached.FindAll(delegate(Card c) { return c.type == i.type; }).Count >= i.value))
{
return false;
}
}
return true;
}