2012-06-20 8 views
0

첫 번째 카드 게임을 만들고 카드를 섞어 야합니다. 우선, 내가 선 4 개 값의 샘플 스택에 대한 셔플 버튼을 만든 그래서 :전체 카드 스택/팩이 셔플 링/난수에 기반하여 배포 될 때까지 버튼을 클릭하여 카드를 배포하는 방법은 무엇입니까?

int i = arc4random() % 4; 
NSLog(@"%d", i); 

셔플 잘 작동을하지만 난 더 이상 없을 때까지이 버튼은 사용자가 임의의 카드를 배포 할 수 없습니다 할 스택에 카드. 이 샘플 버튼을 클릭 할 때마다 나는 NSLoged 결과가 3, 1, 0, 2, "No more cards"(예 : 4 개의 난수 및 메시지 목록 대신)와 같아야합니다.

버튼을 한 번 클릭 할 때마다 임의로 "번호를 배포하는"간단한 방법이 있습니까?

또한 arc4random은 실제 임의의 숫자 또는 의사 난수를 생성합니까? 그것에 관해 많은 글을 읽었으며 그렇게 명확하지 않습니다. 숫자를 무작위로 추출하는 가장 좋은 방법은 무엇입니까?

당신은 예를 들어 임의의 공간에서 가능한 모든 요소와 배열을 만들 수 있습니다
+0

사용중인 언어를 어딘지에 두어야합니다. 이 경우 나는 그것의 객관적인 C를 가정하고 있지만 태그는 그렇게 할 수있는 좋은 장소가 될 것이다. – user1413793

답변

1

: 다음

NSMutableArray *randomNumber = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:1],[NSNumber numberWithInt:2],[NSNumber numberWithInt:3], nil]; 

, 당신은 배열의 무작위 요소를 가지고, 당신은 후에 제거 :

for (int i = 0; i < 4; i++){ 

int randIndex = arc4random()%[randomNumber count]; 
NSLog(@" %d %d", randIndex, [[randomNumber objectAtIndex:randIndex] intValue]); 
[randomNumber removeObjectAtIndex:randIndex]; 
} 
+0

답변을 주셔서 감사합니다.이 코드를 시도했으며 셔플 버튼을 클릭 할 때마다 NSLog가 이제 4 쌍의 숫자 목록을 제공합니다. 이 권리가 있는지 보자. – Glyphs

+0

죄송합니다. Enter 키를 클릭하면 내 의견이 게시됩니다. 코드에 어떤 일이 벌어지고 있는지 이해하고 시도 할 시간을주세요. – Glyphs

+0

코드를 테스트하지는 않았지만이를 처리하는 방법에 대한 아이디어를 줄 수 있습니다. –