uml 類圖(有些陣列型別,但由於在uml裡暫時新增不了陣列型別,故而沒陣列型別)
類的詳細介紹(c++描述)
//類裡省略了對私有資料成員的set和get函式。一下類均以h為字首,表示hoe。
enum hgamestate{
end = 0, //結束狀態
suspend, //暫停狀態
wait, //等待玩家出牌
notstart //可以開始的玩家不夠4個人
enum hplayerstate{
notstart = 0, //還不能開始遊戲
canstart, //可以開始遊戲了
playering //正在玩遊戲了
enum hcardtype{
capture = 0, //俘虜,三張點數相同的牌帶一對
couple, //一對,兩張點數相同的牌
flush, //同花五,五張花色相同的牌
kingkong, //金剛,四張點數相同的牌帶單張
mixseq, //雜順,五張連續的花色不盡相同的牌
single, //單張牌
straightflush, //同花順,五張連續的且花色相同的牌
three, //三張,三張點數相同的牌
invalid //無效牌型
enum hsuit{ //hsuit的四個取值不能改變方向,初始值也必須為0
diamonds = 0, //方塊
club, //梅花
hearts, //紅桃
spade //黑桃
class hcard{ //描述一張牌
private:
short dotnum; //牌的點數
hsuit suit; //牌的花色
public:
bool less(hcard card); //判斷這張牌是否比牌card小
class hpack{ //一副牌
public:
static const short dotnum = 13; //不同的點數的數目
static const short flushnum = 4; //不同的花色的數目
int in[dotnum+1][ flushnum]; //標記一張牌是否在這副牌裡
listcards; //牌列表
short dotnum[dotnum+1]; //每種點數的牌的數目
short flushnum[flushnum]; //每種花色的牌的數目
short restnum; //剩下的牌的數目
hhandcard nexthandcard(hhandcard last); //在這副牌裡找一手牌,這手
//牌的張數和last相同,並且要比last大,如果找不// 到組成牌型就返回//hcardtype為invalid的牌
void delhandcard(hhandcard handcard); //在這副牌裡刪除handcard這手牌
hhandcard gethandcard(listcardpos); //cardpos為牌在cards的位
//置的列表,得出這些牌組成的牌型,如果不能組成牌型就返回
//hcardtype為invalid的牌
void clear(); //清空這副牌
void addcard(hcard card); //新增一張牌
class hhandcard{ //可以一次出手的若干張牌
private:
hcardtype cardtype; //牌型
hcard maxcard; //這手牌中最大的牌
public:
listcards; //這首拍的牌列表
short less(hhandcard handcard); //比較這手牌和handcard的大小,如果這手//牌比handcard小,返回-1,如果不能比較,
//返回0,如果這手牌比handcard大,返回1
class hturn{
private:
short cardnum; //這一輪牌的數目,因為每一輪的牌的數目必須是相等的
//(cardnum為負數,表示第pos玩家是這一輪的首發玩家)。
short pos; //等待第pos位玩家出牌
short lastuser; //上一位玩家,如果pos和lastuser相等,說明將開始新的
//一輪
hhandcard lasthandcard; //這一輪牌的上一手牌
short resttime; //這一輪中等待第pos位玩家出牌的剩餘時間
short maxresttime; //一輪中等待玩家出牌的最大剩餘時間
class hgame{ //遊戲類,負責整個遊戲的資訊維護
private:
hgamestate gamestate; //表示遊戲狀態
int inning; //記錄遊戲的局數
static const short plyaernum = 4; //遊戲的玩家數目
short plyaernum; //目前進入該遊戲的玩家的數目
hplayer player[playernum]; //4個玩家物件
hturn turn; //遊戲中的某一輪
bool hasplayer[4]; //標記某個位置是否已經有player了,為true表示有
public:
class hplayer{
private:
bool isuser; //為true表示是使用者玩家,否則為電腦玩家
int score; //玩家積分
hplayertype playertype; //玩家型別
short tricknum; //道具使用的次數
short maxtricknum = 1; // 道具使用的最大次數
hpack pack; //玩家擁有的一副牌
hplayerstate playerstate; //玩家的狀態
public:
bool usetrick(); //使用道具,使用成功就返回true
類的初步認識
c 一直被稱為是比c更高階的語言,為什麼呢?恐怕就是因為具有物件導向的設計思想,它 將萬千變化 錯綜複雜的外部環境有組織的 有規律的整合在了一起。從規律上,我們引入 了類的概念,將原本複雜的外部環境按照一定的規律和相似點,劃分為不同的類,常言道 物以類聚,鳥易群分嘛。我們在將類有機的進行區別和管理 ...
初步認識類
一 類的定義 class 類的名稱 首字母大寫 比如 class car 然後定義類的屬性 形參 再定義類的方法。class car def init self,make,model,age self.make make self.model model self.age age defget de...
c 類的初步總結
類c 通過定義類來定義資料型別,類定義了該型別的物件所包含的資料和操作。1類定義格式 classclass name 類名一般大寫 注意分號結尾 2介面與實現 在系統中,觀察乙個class有兩個角度,從外部或者使用者角度我們看到的是介面,從內部 我們看到的是實現。介面就是可供外部呼叫的方法,如定義為...