카드의 모든 숫자가 고유하다는 것을 알고있는 경우, 배열을 만들고 카드 개체를 배열의 인덱스에 적어 저장할 수 있습니다. 숫자를 긁적하면 숫자가 큰 배열을 생성 할 것이다 큰 경우 단지
cardArray[number].scratch()
것, 그래서 그 해시를 생성하는 것이 좋습니다 수 있습니다.
cards = {cardNumber:cardObject, ...}
cards[cardNumber].scratch
는
dicemax = 6
scratched = {number: false; ....}
card.scratched? => return scratched[card.number % dicemax]
이 번호는 긁힌 해시를 사용하여 압연하는 추적을 다음과 같이 해시를 만들 수 m에 의해 분할 가능한 모든 숫자를 긁어합니다. 그래서 그것들을 긁는 것은 O (1)에있게 될 것이고, 단지 해쉬의 값을 재작 성할 것입니다. 카드가 긁혔는지 확인하면 카드에 번호가 표시됩니다. 그리고 그 숫자가 주사위 최대 값을 모듈로 나타내는 지보십시오. 이 번호가 해시에서 긁힌 경우 카드에 흠집이 생깁니다.
'm', 'k'및 'n'에 경계가 있습니까? 공유 할 수있는 아이디어가 있었습니까? – Dukeling