Flatiron 프로젝트 1-Ruby 사용 예제 방법
샘플 방법은 내가 보기에 내가 프로젝트에서 만난 가장 유용한 방법이다.교체기와 매거진은 Sample 방법보다 훨씬 유용하지만, 내 프로젝트를 구축하기 전에 Sample의 기능을 몰랐다.
나에게 있어서 공백 파일부터 시작하는 것은 프로젝트에서 가장 어려운 부분이다.일단 내가 공을 굴리기 시작하면, 이것은 느리고 심사숙고한 과정이다.나는 내가 배우고 있는 모든 방법과 과정, 그리고 그것을 어떻게 서로 연결시키는지 진지하게 생각할 시간을 들여야 한다.일부는 정말 나를 느리게 했다.
나의 목표는 89개의 랜덤 단서 라이브러리에서 12개의 랜덤 단서 대상을 추출하여 랜덤 게임을 만들고 실례 변수에 분배하는 것이다.
주의: 나는 12개의 단서 중 어떤 중복된 값도 원하지 않는다.
내 프로세스:
그것은 결국 내 프로젝트의 힘든 부분이 되었다.나는 우선 한 가지 일을 12번 해야 한다. 이것은 매우 간단하다.
12.times do
What to put here???
end
이것이 바로 Sample 방법으로 들어가는 곳이다.이 시간 내에 나는 예시적인 방법을 사용할 것이다.Sample은 당신이 전달한 배열에서 무작위 요소를 추출합니다.이 예에서, 나는 89개의 단서에서 추출하고, 단서에서 id 번호를 얻는다.나는 이 값을 어디에 저장해야 할지 고려해야 하기 때문에, 나는 그것을 하나의 그룹에 저장했다. 나는 방법이 시작될 때 이 그룹을 초기화했다. def random_clues
id = []
12.times do
id << Clue.all.sample.id
end
end
처음에는 기뻤어요.이것은 나에게 12개의 단서 대상의 id 번호를 줄 것이다.나는 이 단서를 반복할 수 있다.모든 그룹은 id 번호가 일치하는 대상을 찾아서 실례 변수에 저장합니다. def random_clues
id = []
12.times do
id << Clue.all.sample.id
end
@board = Clue.all.select do |x|
id.include?(x.id)
end
end
이 예에서, 나는 블록에서true의 모든 값을 되돌려 주기 위해 select 매거진을 사용할 것이다.나의 사고 과정:
이제 나는 12개의 무작위 단서가 있는 실례 변수를 필요로 한다. 나는 나의 CLI 클래스에서 그것을 계속 사용할 수 있다.잠깐만, 중복된 단서가 있을지도 몰라!검사가 필요합니다.
이것이 바로 내가 중복 단서의 대상을 설명하는 방법이다.
def random_clues
id = []
12.times do
id << Clue.all.sample.id
end
if id.uniq == id
@board = Clue.all.select do |x|
id.include?(x.id)
end
else
random_clues
end
현재 id.uniq==id를 확보하기 위해 검사 중입니다. 만약 이것이 사실이라면 단서를 계속 실행할 수 있습니다.전부매거진을 선택하면 모든 것이 좋습니다.만약 이것이 사실이 아니라면, 그것은 이 방법을 다시 시작해야 한다.나의 사고 과정:
이것은 통할 수 있을 것 같지만, 보기에 매우 지루하다.나는 이 점에 동의한다. 이따가 재구성을 고려할 것이다.
나는 코드를 테스트했다. 코드가 작동했다. 그리고 다시 테스트했다. 코드가 작동하지 않았다.나는 장정법으로 약 30분 동안 연속으로 했다.내가 뭘 찾을 수 있는지 알아봐.나는 확실히 오류가 발생한 곳을 찾았다. 이것은 이 방법에서 무작위적인 단서이다. 그러나 나는 왜 그것이 때때로 일을 할 수 있는지, 왜 할 수 없는지 모르겠다. 나는 연구를 통해 다른 프로그래머와 이야기를 나누면서 얻은 결론은, 나에게 귀속 문제가 있다는 것이다.random 단서를 다시 호출할 때 오류가 발생할 수 있습니다.
어떤 이유로든 한 항목을 절반의 시간 동안 유효하게 하는 것은 받아들일 수 없다.그때 나는 두 번째로 우연히 예시적인 방법을 발견했다.그것은 이미 나의 코드에 나타났는데, 이 과정에서부터 나는 그것을 별로 고려한 적이 없다.진일보한 연구를 통해 나는 네가 정수 파라미터를 전달할 수 있다는 것을 발견했다.이것은 그룹에서 유일한 원소의 수량을 추출할 것이다.
나의 사고 과정:
와, 내가 이 길을 더 어렵게 만들었어.아마도 이러한 추가 절차로 이 방법을 정의하기 전에 나는 이것에 대해 더 많은 연구를 해야 할 것이다.
나의 방법은 이 모든 코드에서 나온다
def random_clues
id = []
12.times do
id << Clue.all.sample.id
end
if id.uniq == id
@board = Clue.all.select do |x|
id.include?(x.id)
end
else
random_clues
end
end
이 경우:def random_clues(int)
@board = Clue.all.sample(int)
end
이것은 나의 목표에 매우 도움이 될 뿐만 아니라, 나의 프로젝트에 약간의 유연성을 창조했다.현재 이런 유형의 게임에 대해 나는 고정된 수량의 무작위 단서에 국한되지 않고 사용자로 하여금 그들이 얼마나 많은 단서를 가지고 싶은지 선택하게 할 수 있다.
배달:
수조=[1,2,3,4,5,6,7,8]
어레이sample=>[4]#은 배열의 임의 요소를 반환합니다.샘플(3)=>[3,7,1]#은 그룹에서 무작위 순서로 3개의 무작위 요소(중복 요소 없음)를 되돌려줍니다
Reference
이 문제에 관하여(Flatiron 프로젝트 1-Ruby 사용 예제 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kjfossman/flatiron-project-1-ruby-utilizing-the-sample-method-462k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)