2013-02-14 wcdj 大年初五,情人节
过年和家人玩扑克牌斗牛游戏(地道的发音是 Dou Ou),规则很简单,每个人发五张牌,如果三张牌之和是10,20或30则称为一个牛(Ou),其余两张牌相加之和模10,若没有牛则选最大的一张牌进行大小点比较,若大小点一样则再比较黑红梅方,玩家人数不限,一个人做庄,然后拿点零花钱,后面就看各自的运气了。
抽空将此游戏简单用代码实现了下,一些地方还可以优化。
// 2013-02-14 wcdj
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <vector>
#include <map>
#include <time.h>
using namespace std;
// 每人总共发5张牌
#define PK_NUM 5
// 扑克牌总共40张, 1到10, 黑红梅方
#define PK_TOTAL_NUM 40
const string pk[PK_TOTAL_NUM] = {
"1d","1c","1b","1a",
"2d","2c","2b","2a",
"3d","3c","3b","3a",
"4d","4c","4b","4a",
"5d","5c","5b","5a",
"6d","6c","6b","6a",
"7d","7c","7b","7a",
"8d","8c","8b","8a",
"9d","9c","9b","9a",
"10d","10c","10b","10a", };
const string pk_des[PK_TOTAL_NUM] = {
"黑桃1","红桃1","梅花1","方片1",
"黑桃2","红桃2","梅花2","方片2",
"黑桃3","红桃3","梅花3","方片3",
"黑桃4","红桃4","梅花4","方片4",
"黑桃5","红桃5","梅花5","方片5",
"黑桃6","红桃6","梅花6","方片6",
"黑桃7","红桃7","梅花7","方片7",
"黑桃8","红桃8","梅花8","方片8",
"黑桃9","红桃9","梅花9","方片9",
"黑桃10","红桃10","梅花10","方片10" };
typedef struct st_Player {
// 玩家名字
char szName[64];
// 玩家是否是庄家
bool bIsMasterPlayer;
// 玩家的游戏币数量
int iCoins;
// 玩家随机选取的扑克
string strPKList[PK_NUM];
// 玩家赢的次数
int iWinNum;
// 玩家输的次数
int iLoseNum;
// 最大扑克
int iMaxPK;
string strMaxPK;
string strMaxPKDes;
} stPlayer;
// 玩家的数量
int iPlayerNum = 0;
// 庄家只能有一个
bool bHasChoosedMasterPlayer = false;
// 玩家列表
vector<stPlayer> vecPlayer;
// 随机