2013-05-11 18 views
-4

나는 52 카드 갑판에 사용되는이 알고리즘은 이제 i=10 말을 할 수있다 :알고리즘

int suit = i/13; 
int cardValue = i % 13; 
  • suit가 하트, 다이아몬드, 스페이드, 클럽
  • 에 대한 from 0 to 3입니다 cardValue 내가 suit 알려진으로부터 추론 어떻게, 여왕

에이스, 2, 3, ..., 잭, 킹 from 0 to 12입니다 cardValue으로 돌아가려면 i?

+0

'return i;'를 사용하여 일부 메소드에서 "i"를 얻고 싶다면 그 트릭을 수행 할 것입니다.하지만 스 니펫의 위치와 호출 방법에 대한 코드를 더 게시해야합니다. – Nomad101

+0

정답을 얻으려면 자세한 정보를 제공해주십시오! –

답변

5

는 당신이 요구하는지 완전히 잘 모르겠지만, 그것은 "나"suitcardValue있는에서 얻을에만 있다면, 이것은 할 것 :

int i = suit * 13 + cardValue; 
+0

이것이 맞습니까? int i = suit * 13 + (cardValue-1) – EM10

+0

아니요, 올바르지 않습니다. 예를 들어주세요. 27. suit가 27/15 (정수 나누기)가됩니다. 그러면 cardValue는 2가됩니다. 나머지는 1 (2 * 13 = 26, 27-26 = 1)이됩니다. 이것을 표현에 넣으면 2 * 13 + (1 - 1)이됩니다. 그러면 원래 값이 아닌 26이됩니다. 또한 이것은 테스트하기 쉽습니다. 조금 더 실험해야합니다.식이 잘못 나온 결과를 쉽게 보았을 것입니다. –

0

나는 결코이 코드에서 변경되지 않는 변수를 . 10시에 시작하면 10으로 유지됩니다. 할당 값을 일시적으로 변경하는 중입니다.