Я делаю текстовую игру, и когда вы доберетесь до последней двери, она заблокирована. Вам нужно три элемента (строки в массиве).Ruby - Проверка наличия нескольких значений в любом массиве
Итак, я пытаюсь сделать заявление if, чтобы узнать, содержит ли ваш инвентарь (который может нести три предмета, а также другие) эти три элемента, расположенные где угодно.
array1 = ["key1", "key2", "key3", "sword", "dagger"]
array2 = ["key1", "key2", "key3"]
if array1.include? array2
puts "it does"
else
puts "it doesn't"
end
Я пробовал такие вещи, как с помощью любого и включают в себя, но я не могу придумать простое решение о том, как я хотел бы сделать это, как мои тесты показали неожиданные результаты.
Спасибо.
@CarySwoveland дал вам отличный ответ, но вы рассмотрели хранение инвентаризации в 'Hash' например 'inventory = {keys: [" key1 "," key2 "," key3 "], оружие: [" меч "," кинжал "]}', тогда это будет так же просто, как 'inventory [: keys] == array2' , Это также добавило бы в функциональность игры, классифицировав такие вещи, как ключи, оружие и многие другие предметы. – engineersmnky
@engineersmnky - Хорошая идея! Я не попал в хэш-часть учебного пути, поэтому я обязательно проверю это, кажется, лучший способ пойти. Кроме того, я сделал так, что в этой истории я достал часть оружия, поэтому он полагается исключительно на предметы. – jimps