저는 기본적인 루비를 연습 할 수 있도록 게임을 만들고 있습니다. 내 블랙 잭 게임에서, 나는 뽑을 카드 덱을 만들었습니다.Ruby 메서드가 원래 배열을 변형시키지 않는 이유는 무엇입니까?
player_cards = cards.shuffle!.shift(2)
나는 변화를 사용과 같이 셔플과 함께 팝업을 시도 : 나는 배열을 섞어 관리했습니다 유일한 방법은, 그 배열에서 끌어 다음과 같이 배열은 원래 카드에서 두 개의 카드를 제거 : 내가 셔플없이 팝과 변화를 사용하는 경우
player_cards = cards.shuffle.shift
player_cards = cards.shuffle.pop
IRB에서, 배열 내가 (해시의 배열)에서 당겨 노력하고있어 갑판에서 그 카드를 제거합니다. 셔플을 추가하자 마자 카드는 더 이상 영구적으로 덱에서 제거되지 않습니다. 나는 셔플을 사용해야한다! 내 작업을 완료하기 위해서.
내가 알고 싶은 것은 왜 셔플을 사용하여 예상대로 작업을 시작하지 않습니까? Ruby에서 chaining에 대한 기초적인 이해는 카드 배열을 먼저 섞어서 반환 한 다음 배열의 요소를 제거한다는 것입니다.
내 오류가 무엇입니까 내 유일한 생각은 셔플 배열을 셔플 및 셔플 된 배열을 반환하지만 원래 카드 배열을 반환합니다. 셔플 된 배열에서 하나 또는 두 개의 카드를 띄우거나 이동 시키면 원래의 카드 배열이 아니라 셔플에 의해 반환 된 배열입니다. 그 맞습니까?
죄송합니다. 문제를 이해할 수 없습니다. 그걸 가르쳐 줄 수 있니? – Aleksey
@Aleksey 문제가 분명하게 명시되어 있지만, 더 많은 것을 명확히 할 이유가 없습니다. – mudasobwa
죄송합니다. 오늘은 좀 아플 것 같습니다. 그 때문일 수도 있습니다. – Aleksey