2015-10-06 100 views
0

我在學習如何使用類,但我很難理解它,所以我試圖創建一個遊戲。class * object = new class [size]

我想訪問堆中的10名玩家,我想初始化每個玩家的技能。我真的不知道我在做什麼,請幫助我。如果你認爲我的程序結構是垃圾,請告訴我並告訴我如何正確地做到這一點。由於

的main.cpp

int main() 
{ 
    Player *p = new Player[10]; 
    p->createPlayer(&p,10); 
} 

頭文件

class Player 
{ 
    public: 
     Player(); 
     ~Player(); 

     int genRanNum(int); 
     void createPlayer(Player *, int); 
    private: 
     int plyrSkill1,plyrSkill2,plyrSkill3; 
     int plyrId; 
}; 

CPP文件

Player::Player() 
{ 
} 

int Player::genRanNum(int num) 
{ 
    return 1+(rand()%num); 
} 

void Player::createPlayer(Player *p, int si) 
{ 

    for(int i = 0; i < si; i++) 
    { 
     *p->staId = i; 
     *p->staSkills1 = genRanNum(10); 
     *p->staSkills2 = genRanNum(10); 
     *p->staSkills3 = genRanNum(10); 
    } 
} 
+1

'Player'和'Stafff'之間沒有關係,'* p-> x'等價於'*(p-> x)',而不是'(* p) - > x'。你應該看看獲得[書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 – molbdnilo

+0

對不起,這是假設是球員=新球員沒有工作人員我試圖先工作人員然後去做一個遊戲生病編輯它 –

+1

問自己你的代碼的每個部分做什麼,並且你是否想要做它。因爲它沒有什麼意義。 – juanchopanza

回答

0

Player *p = new Player[10];的第一行是在堆上創建一個由10個玩家組成的數組。

看來,要「初始化」這10名球員與第二線p->createPlayer(&p,10);但代碼是錯誤的:

createPlayer()功能迴路始終工作在相同的播放器(它增加我,但p是總是一樣)。

試試這個:

class Player 
{ 
    public: 
     Player(); /// can be private if players can be instantiated only by createPlayer() 
     ~Player(); 

     static int genRanNum(int); 
     static Player* createPlayer(int); 
    private: 
     int plyrSkill1,plyrSkill2,plyrSkill3; 
     int plyrId; 
}; 

的createPlayer()和getRanNum()是靜態的,因爲它們是類方法(它不涉及到一個特別的實例)

Player * Player::createPlayer(int si) 
{ 
    Player *player = new Player(); 
    player->staId = si; 
    player->staSkills1 = genRanNum(10); 
    player->staSkills2 = genRanNum(10); 
    player->staSkills3 = genRanNum(10); 

    return player; 
} 

最後在主:

int main() 
{ 
    std::vector<Player *> p(10); 
    for (int iPlayer=0; iPlayer<10; iPlayer++) 
    { 
     p[iPlayer] = Player::createPlayer(iPlayer); 
    } 

    ... 
    /// Don't forget to delete players 
} 
0

我想學習如何使用類,但我很難 試圖瞭解它,所以我試圖創建一個遊戲。

既然你想創建一個遊戲,想象所有的角色和場景或任何你想要的。

模式遊戲的你的想法/看法..

例子:

game model

一旦你已經確定你所需要的所有類和它們之間的關係,現在就可以開始編碼他們用你想要的任何語言。

我知道這需要時間,但它是學習設計的一種更好的方式,從長遠來看,這些技能將會有所幫助。

相關問題