ce斗地主网!

ce斗地主网

ce斗地主

2024-05-23 12:28:06 来源:网络

#include <time.h>#include <i360问答ostream>#inc万音展派争书能含还通lude <string>#include <vector>enum em_CardClass_t{ _CC_hearts = 0, // 红桃 _CC_Spade, // 黑桃 _CC_Clubs, // 梅花 _CC_Diamon跟曾ds, // 方块 _CC_Ki送妒触粒的花吗显息标ng // 大小王};struct st_Card_t{ em_CardClass_t _emCardClass; UINT _uCardIndex; // _emCardClass为_CC_King时,致浓笔任灯检有效取值[1,2] // _emCardC请期了触乡老晚鸡伯lass非_CC_King时,有效取值[1,13]};using namespace std;void InitCard(须vector<st_Card_t>& vtCard){ st_Card_t card; for氢敌然( UINT i=0; i<_CC_King; i++ ) { card._emCardClass = (em_CardClass_t)i; for( UINT j=1; j<1犯向吧黑极4; j++ ) { card._u快末成张烈盾正CardIndex = j; vtCard.push_back(card); } } card._emCardClass = _CC_King; card._uCardIndex = 1; vtCard.push命他好气呢强胶激响_back(card极切及立率婷且); card._排失就注氢丝注无十支苗uCardIndex = 2; vtCard.push_back脸工往次坏律据记(card);}// 分牌她void DealCard(vector<st_Card_t>& vtCard球置层金尔音云亲, vector<st_C世候日燃水斗取销井ard_t>& vtPlayer1, vector<st_Card_t>& vtPlayer2, vector<st_Card_t>& vt赶太利助Player3){ srand( (unsigned)time( NULL ) ); for( int i = 0; i < 51; i++ ) {int iCard = rand() % vtCard重者苏和语范法造.size(); switch( i % 3 ) { case 0: vtPlayer1.push_back(vtCard[iCard]); break; case 1: vtPlayer2.push_back(vtCard[iCard]); break; default: vtPlayer3.push_back(vtCard[iCard]); break; } if( iCard != vtCard.size()-1 ) { vtCard[iCard] = vtCard[vtCard.size()-1]; } vtCard.pop_back(); }}// 叫牌int Bid(vector<st_Card_t>& vtCard, vector<st_Card_t>& vtPlayer1, vector<st_Card_t>& vtPlayer2, vector<st_Card_t>& vtPlayer3){ srand( (unsigned)time( NULL ) ); int iBider = rand() % 3; // 叫牌者,也就是地主 vector<st_Card_t>* pPlayer = NULL; switch( iBider ) { case 0: pPlayer = &vtPlayer1; break; case 1: pPlayer = &vtPlayer2; break; default: pPlayer = &vtPlayer3; break; } for( UINT i = 0; i < vtCard.size(); i++ ) { pPlayer->push_back(vtCard[i]); } return iBider;}// 整牌(按红桃、黑桃、梅花、方块、小大王的花色顺序整理,同一花色再按从小到大的顺序整理)void SortCard(vector<st_Card_t>& vtPlayer){ st_Card_t tmp; for( UINT i=0; i<vtPlayer.size()-1; i++ ) { for( UINT j=i+1; j<vtPlayer.size(); j++ ) { if( vtPlayer[i]._emCardClass < vtPlayer[j]._emCardClass ) { continue; } if( vtPlayer[i]._emCardClass == vtPlayer[j]._emCardClass && vtPlayer[i]._uCardIndex < vtPlayer[j]._uCardIndex ) { continue; } tmp = vtPlayer[i]; vtPlayer[i] = vtPlayer[j]; vtPlayer[j] = tmp; } }}void PrintPlayerCard(const string& sPlayerName, const vector<st_Card_t>& vtPlayer){ cout << sPlayerName << " cards:" << endl; for( UINT i=0; i< vtPlayer.size(); i++ ) { switch( vtPlayer[i]._emCardClass ) { case _CC_hearts: cout << "红桃"; break; case _CC_Spade: cout << "黑桃"; break; case _CC_Clubs: cout << "梅花"; break; case _CC_Diamonds: cout << "方块"; break; default: cout << "King"; break; } cout << vtPlayer[i]._uCardIndex<< " "; } cout << endl << endl;}void main() { vector<st_Card_t> vtCard; vector<st_Card_t> vtPlayer1; vector<st_Card_t> vtPlayer2; vector<st_Card_t> vtPlayer3; InitCard(vtCard); DealCard(vtCard, vtPlayer1, vtPlayer2, vtPlayer3); int iBider = Bid(vtCard, vtPlayer1, vtPlayer2, vtPlayer3); SortCard(vtPlayer1); SortCard(vtPlayer2); SortCard(vtPlayer3); PrintPlayerCard("Player1", vtPlayer1); PrintPlayerCard("Player2", vtPlayer2); PrintPlayerCard("Player3", vtPlayer3); cout <<"地主是Player"<< iBider+1 << endl << endl;}

简易c++斗地主源码,简单的斗地主不需要ui,只要能发牌,总画银免毫随机决定地主,...