斗地主是流行于湖北武汉、汉阳一带的一种扑克游戏。游戏需由3个玩家进行,用一副54张牌(连鬼牌),其中一方为地主,其余两家为另一方,双方对战,先出完牌的一方获胜。 斗地主 斗地主 (5张) 斗地主起源于湖北武汉汉阳一带,是职业扑克专家严军和他的同伴们根据当地流行的扑克玩法“跑得快”改编的。当初有一群“跑得快”痴迷者,经常在人数不足的情况下玩三个人的“跑得快”,起初并不叫斗地主,他们圈内的人叫“二打一”。最初的“二打一”总共54张牌,每个玩家发18张牌,不留三张底牌,只是一个玩家从另外的两个玩家手里各随机抽取一张牌,被抽牌的玩家共同协作对付抽牌的玩家,这样慢慢演变成了“斗地主”。斗地主首先命名的牌型是飞机,然后是火箭,1995年,“二打一”正式命名为“斗地主”。如今已风靡整个中国,并流行于互联网上。斗地主、德克萨斯扑克及百家乐是世界上三种最流行的扑克游戏。
代码都在一个类里面,太代。只放出局部
项目地址:ddz

代码都在一个类里面,太代。只放出局部
////////////////////////////////////////////////////////////////////////////////
// 显示桌面
////////////////////////////////////////////////////////////////////////////////
void CDddzDlg::ShowDesktop()
{
//if(CheckIfOver())
if(g_nShowStart == 0)//开始
{
AddToMemDC(IDB_BITMAP_bg,0,0,g_nScreenX,g_nScreenY);//背景
//MessageBox( "背景!" , "" , MB_OK);
}
showfenshu();
if(g_nShowStart == 1)//开始
{
AddToMemDC(IDB_BITMAP_start,650,HEIGHT-100,g_nScreenX,g_nScreenY);
// MessageBox( "开始!" , "" , MB_OK);
}
if(g_nShow3f == 1&&g_nTurnGetLord ==2)//3分
{
AddToMemDC(IDB_BITMAP_3f,340,400,g_nScreenX,g_nScreenY);
}
if(g_nShow3f == 0)//3分
{
for(int j=1;j<45;j++)
AddToMemDC(IDB_BITMAP_time, 55+j*3, 10,g_nScreenX,g_nScreenY);
}
if(g_nShowNotGet == 1&&g_nTurnGetLord ==2)//不叫
{
AddToMemDC(IDB_BITMAP_bj,410,400,g_nScreenX,g_nScreenY);
// MessageBox( "ShowNotGet!" , "" , MB_OK);
}
if(g_nCanNotOut == 1)//2出的不对
{
AddToMemDC(IDB_BITMAP_no,280,360,g_nScreenX,g_nScreenY);
}
if(g_nShowNotOut == 1)//2不出
{
AddToMemDC(IDB_BITMAP_notout,380,400,g_nScreenX,g_nScreenY);
AddToMemDC(IDB_BITMAP_ts,450,400,g_nScreenX,g_nScreenY);
}
if(g_nPlayer1NotGet == 1)//1不叫
{
AddToMemDC(IDB_BITMAP_bj2,200,300,g_nScreenX,g_nScreenY);
}
if(g_nPlayer3NotGet == 1)//3不叫
{
AddToMemDC(IDB_BITMAP_bj2,550,300,g_nScreenX,g_nScreenY);
}
if(g_nPlayer1NotOut == 1)//1不出
{
AddToMemDC(IDB_BITMAP_bc,200,280,g_nScreenX,g_nScreenY);
}
if(g_nPlayer3NotOut == 1)//3不出
{
AddToMemDC(IDB_BITMAP_bc,550,280,g_nScreenX,g_nScreenY);
}
switch(g_nWhoIsLord)//地主
{
case 1: {AddToMemDC(IDB_BITMAP_lord,20,280,g_nScreenX,g_nScreenY);}break;
case 2: {AddToMemDC(IDB_BITMAP_lord,375,620,g_nScreenX,g_nScreenY);}break;//552
case 3: {AddToMemDC(IDB_BITMAP_lord,740,280,g_nScreenX,g_nScreenY);}break;
}
}
//显示player牌
void CDddzDlg::ShowPai()
{
if(CheckIfOver())
{
OutAll(&player1);
OutAll(&player3);
}
//显示player1
CardX = 75 ;
g_nCardHeight = 96;
CardY = (HEIGHT-ADD*(CardNum(player1 , 0)-1)-g_nCardHeight)/2 -60;
g_nCardX1 = 195 ;
g_nCardY1 = (HEIGHT-ADD*(CardNum(player1 , 2)-1)-g_nCardHeight)/2 - 100 ; //30
for(int i = 0 ; i < 20 ; i++)
{
switch (player1.statics[i])
{
case 5:
LoadCard(2 , &CardX , &CardY , 0, ADD) ;
break ;
case 2:
LoadCard(player1.card[i] , &g_nCardX1 , &g_nCardY1 , 0,ADD) ;
break ;
}
}
//显示player2
CardX = (WIDTH-ADD*(CardNum(player2 , 0)-1)-g_nCardWidth)/2 -120; //10
//CardX =100;
CardY = 500 ; //460
g_nCardX1 = (WIDTH-ADD*(CardNum(player2 , 2)-1)-g_nCardWidth)/2 -120; //
g_nCardY1 = 250 ; //250
for(i = 0 ; i < 20 ; i++)
{
switch (player2.statics[i])
{
case 5:
LoadCard(player2.card[i] , &CardX , &CardY , ADD,0) ;
break ;
case 1://向上弹
{
CardY -= ADD ;
LoadCard(player2.card[i] , &CardX , &CardY , ADD,0) ;
CardY += ADD ;
}
break ;
case 2:
LoadCard(player2.card[i] , &g_nCardX1 , &g_nCardY1 , ADD,0) ;
break ;
}
}
//显示player3
CardX = 645 ;
g_nCardHeight = 96;
CardY = (HEIGHT-ADD*(CardNum(player3 , 0)-1)-g_nCardHeight)/2 -60;
//CardY =100;
g_nCardX1 = 530 ;
g_nCardY1 = (HEIGHT-ADD*(CardNum(player3 , 2)-1)-g_nCardHeight)/2 - 100; //
// g_nCardY1=120;
for(i = 0 ; i < 20 ; i++)
{
switch (player3.statics[i])
{
case 5:
LoadCard( 2 , &CardX , &CardY , 0,ADD) ;
break ;
case 2:
LoadCard(player3.card[i] , &g_nCardX1 , &g_nCardY1 , 0,ADD) ;
break ;
}
}
//显示另三张
CardX = 218 ;
CardY = 10 ;
int nTemp = 75;
if(g_nShowStart != 1)
{
if(g_nWhoIsLord != 0)
{
for(i = 0 ; i < 3 ; i++)
{
LoadCard( player4.card[i] , &CardX , &CardY , nTemp,0) ;
}
}
else
{
for(i = 0 ; i < 3 ; i++)
{
LoadCard( 2 , &CardX , &CardY , nTemp,0) ;
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
// 计算出点在了哪张牌上
////////////////////////////////////////////////////////////////////////////////
void CDddzDlg::SelectCard(int x , int y)
{
int xTemp = x-(WIDTH-204-ADD*(CardNum(player2 , 0)-1)-g_nCardWidth)/2 +20;
if(y<600 && y>480)//560.440
{
if((xTemp/ADD) < CardNum(player2 , 0))
{
if(player2.statics[xTemp/ADD-1] == 5)
{
player2.statics[xTemp/ADD-1] = 1 ;
}
else
{
if(player2.statics[xTemp/ADD-1] == 1)
{
player2.statics[xTemp/ADD-1] = 5 ;
}
}
}
else
{
if((xTemp/ADD) < CardNum(player2 , 0)+4)
{
if(player2.statics[CardNum(player2 , 0)-1] == 5)
{
player2.statics[CardNum(player2 , 0)-1] = 1 ;
}
else
{
if(player2.statics[CardNum(player2 , 0)-1] == 1)
{
player2.statics[CardNum(player2 , 0)-1] = 5 ;
}
}
}
}
InvalidateRect(NULL,0);
}
}项目地址:ddz
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2314
- 用户1336
- 访客11813325
每日一句
Let's seek joy in the simple, quiet moments.
让我们在简单宁静的时刻中寻找快乐。
让我们在简单宁静的时刻中寻找快乐。