bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
int num[20];
for (int i=0; i<20; i++) {
num[i] = i;
}
for (int i=0; i<20; i++) {
int r = random(i, 19);
swap(num[i], num[r]);
CCLOG("rand:%d", num[i]);
}
return true;
}
int HelloWorld::random(int start, int end){
float i = CCRANDOM_0_1()*(end-start+1)+start;
return (int)i;
}
第24行的語句的意思是獲取[start, end]范圍的隨機數。
第9--12行初始化一個長度為20的數組,初始化的內容是將要被打亂的目標隨機數。
第14-18行首先獲取一個范圍為[i, 19]的隨機數r,然後將index為i和index為r的數進行交換,然後輸出利用隨機數打亂後的數組。
另外,實際使用時不要忘記設置隨機數種子,不然的話每次獲取的隨機數都是相同的
1 srand(time(NULL)); //放在調用隨機函數的循環外