当前位置:首页 » 操作系统 » 斗地主源码开发

斗地主源码开发

发布时间: 2025-05-11 02:24:07

㈠ 各位C++老师,我下了一个斗地主的源程序,发现没有main的入口函数,我该从什么地方开始着手看

你在vc环境下,点击edit-->find in file,工程选择你源码所在目录,搜索关键字就是main,下面的项目都不要选,然后点击find,查看一下结果
main函数是所有工程的入口函数,但有些地方会把他封装起来,比如想WinMain,Win32等,名字不一定是什么,但肯定会带着一个main的

㈡ 求斗地主java源代码

为保证咱两交易成功,我先发送代码中的一部分

先开启服务器监听 SocketServer ss = new SocketServer(6,8888);端口是8888 最多通 同时访问6人。
然后ss.start();开启监听

然后在New一个Socket
String ip = "127.0.0.1";服务器的IP
int port = 8888; 服务器的端口
Socket socket = new Socket(ip,port);
socket.connec();
OutputStream os = socket.getOutputStream();
String message = "要发送的数据";
os.write(message.getBytes());
os.flush();
os.close();
socket.close();

㈢ 简易c++斗地主源码,简单的斗地主不需要ui,只要能发牌,随机决定地主,把牌按大小顺序排列

#include <time.h>
#include <iostream>
#include <string>
#include <vector>

enum em_CardClass_t
{
_CC_hearts = 0, // 红桃
_CC_Spade, // 黑桃
_CC_Clubs, // 梅花
_CC_Diamonds, // 方块
_CC_King // 大小王
};

struct st_Card_t
{
em_CardClass_t _emCardClass;
UINT _uCardIndex; // _emCardClass为_CC_King时,有效取值[1,2]
// _emCardClass非_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<14; j++ )
{
card._uCardIndex = 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_Card_t>& vtPlayer1,
vector<st_Card_t>& vtPlayer2, vector<st_Card_t>& vtPlayer3)
{
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;

}

㈣ 欢乐斗地主游戏源码价格多少

杰米科技的是2-3万,如客户还有其他要求,费用另算

㈤ 我想开发斗地主人工智能程序,有人知道用什么语言好吗, 最后给个代码

// GameLogic.cpp: implementation of the CGameLogic class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "GameLogic.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// //静态变量 //扑克数据 //扑克数据 const BYTE CGameLogic::m_cbCardData[FULL_COUNT]= { 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, //方块 A - K 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D, //梅花 A - K 0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D, //红桃 A - K 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D, //黑桃 A - K 0x4E,0x4F, }; const BYTE CGameLogic::m_cbGoodcardData[GOOD_CARD_COUTN]= { 0x01,0x02, 0x11,0x12, 0x21,0x22, 0x31,0x32, 0x4E,0x4F, 0x07,0x08,0x09, 0x17,0x18,0x19, 0x27,0x28,0x29, 0x37,0x38,0x39, 0x0A,0x0B,0x0C,0x0D, 0x1A,0x1B,0x1C,0x1D, 0x2A,0x2B,0x2C,0x2D, 0x3A,0x3B,0x3C,0x3D }; ////////////////////////////////////////////////////////////////////////// //构造函数 CGameLogic::CGameLogic() { //AI变量 m_lBankerOutCardCount = 0 ; } //析构函数 CGameLogic::~CGameLogic() { #ifdef _CHECK_DUG file.Close() ; #endif } //获取类型 BYTE CGameLogic::GetCardType(const BYTE cbCardData[], BYTE cbCardCount) { //简单牌型 switch (cbCardCount) { case 0: //空牌 { return CT_ERROR; } case 1: //单牌 { return CT_SINGLE; } case 2: //对牌火箭 { //牌型判断 if ((cbCardData[0]==0x4F)&&(cbCardData[1]==0x4E)) return CT_MISSILE_CARD; if (GetCardLogicValue(cbCardData[0])==GetCardLogicValue(cbCardData[1])) return CT_DOUBLE; return CT_ERROR; } } //分析扑克 tagAnalyseResult AnalyseResult; if(!AnalysebCardData(cbCardData,cbCardCount,AnalyseResult)) return CT_ERROR ; //四牌判断 if (AnalyseResult.cbFourCount>0) { //牌型判断 if ((AnalyseResult.cbFourCount==1)&&(cbCardCount==4)) return CT_BOMB_CARD; // if ((AnalyseResult.cbFourCount==1)&&(AnalyseResult.cbSignedCount==2)&&(cbCardCount==6)) return CT_FOUR_LINE_TAKE_ONE; if ((AnalyseResult.cbFourCount==1)&&(AnalyseResult.cbSignedCount==2)&&(cbCardCount==6)) return CT_FOUR_LINE_TAKE_ONE; if ((AnalyseResult.cbFourCount==1)&&(AnalyseResult.cbDoubleCount==2)&&(cbCardCount==8)) return CT_FOUR_LINE_TAKE_TWO; return CT_ERROR; } //三牌判断 if (AnalyseResult.cbThreeCount>0) { //三条类型 if(AnalyseResult.cbThreeCount==1 && cbCardCount==3) return CT_THREE ; // 此源码来自 棋牌基地 http://www.2qipai.com //连牌判断 if (AnalyseResult.cbThreeCount>1) { //变量定义 BYTE cbCardData=AnalyseResult.cbThreeCardData[0]; BYTE cbFirstLogicValue=GetCardLogicValue(cbCardData); //错误过虑 if (cbFirstLogicValue>=15) return CT_ERROR; //连牌判断 for (BYTE i=1;i<AnalyseResult.cbThreeCount;i++) { BYTE cbCardData=AnalyseResult.cbThreeCardData[i*3]; if (cbFirstLogicValue!=(GetCardLogicValue(cbCardData)+i)) return CT_ERROR; } } //牌形判断 if (AnalyseResult.cbThreeCount*3==cbCardCount) return CT_THREE_LINE; if (AnalyseResult.cbThreeCount*4==cbCardCount) return CT_THREE_LINE_TAKE_ONE; if ((AnalyseResult.cbThreeCount*5==cbCardCount)&&(AnalyseResult.cbDoubleCount==AnalyseResult.cbThreeCount)) return CT_THREE_LINE_TAKE_TWO; return CT_ERROR; } //两张类型 if (AnalyseResult.cbDoubleCount>=3) { //变量定义 BYTE cbCardData=AnalyseResult.cbDoubleCardData[0]; BYTE cbFirstLogicValue=GetCardLogicValue(cbCardData); //错误过虑 if (cbFirstLogicValue>=15) return CT_ERROR; //连牌判断 for (BYTE i=1;i<AnalyseResult.cbDoubleCount;i++) { BYTE cbCardData=AnalyseResult.cbDoubleCardData[i*2]; if (cbFirstLogicValue!=(GetCardLogicValue(cbCardData)+i)) return CT_ERROR; } //二连判断 if ((AnalyseResult.cbDoubleCount*2)==cbCardCount) return CT_DOUBLE_LINE; return CT_ERROR; } //单张判断 if ((AnalyseResult.cbSignedCount>=5)&&(AnalyseResult.cbSignedCount==cbCardCount)) { //变量定义 BYTE cbCardData=AnalyseResult.cbSignedCardData[0]; BYTE cbFirstLogicValue=GetCardLogicValue(cbCardData); //错误过虑 if (cbFirstLogicValue>=15) return CT_ERROR; //连牌判断 for (BYTE i=1;i<AnalyseResult.cbSignedCount;i++) { BYTE cbCardData=AnalyseResult.cbSignedCardData[i]; if (cbFirstLogicValue!=(GetCardLogicValue(cbCardData)+i)) return CT_ERROR; } return CT_SINGLE_LINE; } return CT_ERROR; } //排列扑克

求采纳

㈥ 易语言局域网斗地主源码怎么用!

用易语言的 客户和 服务器 发送文本信息 比如说发送“红桃2:方片3” 然后接收端检测发过来的一段文本 然后用分割文本 按照":"这个符号分割然后判断 很麻烦的。。

热点内容
传奇qf脚本 发布:2025-05-11 06:35:21 浏览:445
我的世界等价交换服务器地址 发布:2025-05-11 06:34:49 浏览:430
ftp传图失败 发布:2025-05-11 06:34:47 浏览:855
安卓如何设置抖音自动播放 发布:2025-05-11 06:32:21 浏览:671
c交互脚本 发布:2025-05-11 06:19:57 浏览:529
赤壁为什么连接不上服务器 发布:2025-05-11 06:14:49 浏览:772
linuxmysql源码包 发布:2025-05-11 06:07:39 浏览:621
密码提示默认是什么意思 发布:2025-05-11 06:06:52 浏览:635
python语言编程入门 发布:2025-05-11 06:06:49 浏览:800
安卓855手机哪个性能最好 发布:2025-05-11 06:01:49 浏览:144