纸牌游戏数据结构实训代码
纸牌游戏——数据结构实训代码
实训要求:
题目十三、纸牌游戏
基本要求:
?一副没有花牌(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 ;