2024年4月15日发(作者:)
纸牌游戏——数据结构实训代码
实训要求:
基本要求:
一副没有花牌(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<<" 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;//标记哪些牌被发出
发布者:admin,转转请注明出处:http://www.yc00.com/web/1713111420a2185204.html
评论列表(0条)