程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> cocos2d-x:獲取不重復的隨機數,cocos2d-x隨機數

cocos2d-x:獲取不重復的隨機數,cocos2d-x隨機數

編輯:C++入門知識

cocos2d-x:獲取不重復的隨機數,cocos2d-x隨機數


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));   //放在調用隨機函數的循環外

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved