斗地主是流行于湖北武汉、汉阳一带的一种扑克游戏。游戏需由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)
站点信息
- 文章2302
- 用户1336
- 访客10973843
每日一句
Qingming Festival invites us to honor ancestors with quiet reflection and respect.
清明节邀请我们以静思与敬意祭奠祖先。
清明节邀请我们以静思与敬意祭奠祖先。
UAC的限制引起WM_DROPFILES无法响应的解决办法
MeasureSpec中三种模式:UNSPECIFIED,AT_MOST,EXACTLY
发几个实用的chrome插件
CentOS下使用 svnsync迁移SVN代码库
仙剑奇侠传3d回合-PC端辅助
【转载】C++实现EXE加载到内存执行
【收藏】OpenCV一些常用库函数
《闲来麻将》搭建教程
文本转语音系统Spark-TTS
wordpress转xiuno附件自动插入工具
Mac OS最简单及(Karabiner)快捷键设置
使用Putty上传文件?
ndk神奇问题之non-numeric second argument to `wordlist' function: '8.7z'
新会员