纸牌游戏数据结构实训代码

纸牌游戏——数据结构实训代码

实训要求:

题目十三、纸牌游戏

基本要求:

?一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一

个人为用户,另一个人为计算机;

?每轮每人各发5张牌,各自以这5张牌建立二叉排序树;

?由用户先出,轮流出牌,每次只能出一张并且要比别人出的大,如:用户出3,计

算机则要出比3大的牌,没有则选择不出;

?最先出完的人获胜。

#include

#include // 产生随机数

#include

#include

#include

using namespace std;

class PlayingCards

{

private:

int card1[10][4];//标记发牌

int card2[5][2];//标记出牌

public:

int b[5];

char bhuase[5];

int c[5];

char chuase[5];

PlayingCards(){};

void yxsm(); //游戏说明

void fp();//随机发牌

void cp();//按顺序出牌,并显示

void xswj();//显示获得的牌

void xsdn();//显示获得的牌

void qk();//清空标记数组的记录};

PlayingCards a;

typedef struct node

{

int data;

struct node * LChild;

struct node * RChild;

}node;

class tree

{private:

int data;

struct node * LChild;

struct node * RChild; public:

void chushihua(node *t);

node * charu(node *t , int key);

node * jianlib(node *t);

node * jianlic(node *t);

void paixu1(node * t);

void paixu2(node * t,int *p);

void paixu3(node * t,int *p);

};

tree tr;

void PlayingCards::yxsm()

{

cout<<" "<<"每轮每人各发5张牌,各自以五张牌建立二叉树,由用户先出,轮流出牌,"<

cout<<" "<<"每次只能出一张并且要比别人出的大,"<

cout<<" "<<"如:用户出3,计算机则要出比3大的牌,没有则选择不出;"<

}

void PlayingCards::fp()

{int l,e;//临时储存随机牌数

int f;

for(int i = 0;i < 5;i++)

{

l = rand()%9 + 2;//玩家得到牌的点数

cout<<"发到的牌"<

f = rand()%4+3;

while(card1[l-1][f-3] == 1)

{l = rand()%9 + 2;f= rand()%4+3;}

card1[l-1][f-3] = 1;//标记哪些牌被发出

b[i] = l ;

相关文档
最新文档