c++纸牌游戏,数据结构纸牌游戏c语言

c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏

本文主要介绍用C语言实现的纸牌游戏的示例代码。文中的示例代码讲解的很详细,对我们学习C语言很有帮助。感兴趣的朋友可以跟着边肖学习一下。

:

目录

1.基本要求2。运行界面3。代码解释

1. 基本要求

一副没有花牌的扑克牌(J、Q、K、A、大王大、大王小)。两个人玩卡牌游戏,一个是用户,一个是电脑;

每轮给每个人发五张牌,用这五张牌建立一个二叉排序树。

用户先打牌,轮流打牌。一次只能出一张牌,而且要比别人大。比如用户出3,电脑就出大于3的牌,否则无法选择。

最先完成的人获胜。

2. 运行界面

1.头版

2.游戏描述

开始游戏

4.开始玩牌

5.游戏结束

3. 代码解释

# includestdio.h

#includestdlib.h

#includewindows.h

#includetime.h

int卡[5][2];//标记玩家和用户分别打出的牌。

int player card[5];//玩家的手

int计算机卡[5];//电脑的手

char bhu ase[5];

char chuase[5];

typedef结构节点

{

int数据;

结构节点* LChild

结构节点* RChild

}节点;

typedef结构树

{

int数据;

结构节点* LChild

结构节点* RChild

}树;

//游戏描述

void PlayingCardsyxsm()

{

printf(‘每个人每轮发五张牌,用五张牌建立一个二叉树。用户会先出牌,轮流出牌。\ n’);

Printf('一次只能发一个并且应该比其他的大',\ n ');

Printf('比如用户给3,计算机就要算出大于3的牌,否则无法选择;\ n’);

Printf('最先完成的人获胜。\ n’);

}

//发牌卡

void PlayingCardsfp()

{

int播放器;

int计算机;

//玩家和电脑各发五张牌

for(int I=0;i5;i ){

player=rand()% 9 2;

Printf('玩家发的牌:%d \n ',玩家);

playercard[i]=播放器;

computer=rand()% 9 ^ 2;

Printf('计算机发行的卡:%d \n ',计算机);

计算机卡[i]=计算机;

}

}

//打牌

void PlayingCardscp()

{

int player=0;//玩家在当前回合中打出的牌

int computer=0;//当前回合中计算机打出的牌

int player count=0;//玩家打出的牌数

int computer count=0;//电脑打出的牌数

bool flag=false

//每次出现最大值时,游戏也最多可以玩5轮。

for(int m=0;m 5;m)

{

//双方出牌时,总共最多打5轮。

for(int k=0;k 5;k)

{

for(int j=0;j 5;j)

{

//确定当前的牌可以打,比对手的大,而且你没打过这张牌。

if(playercard[j]电脑卡[j][0]==0)

{

Printf('玩家卡% c% d \ n ',bhuase [j],玩家卡[j]);

玩家计数;//玩家的牌数是1

//标记玩家已经打出这张牌

卡[j][0]=1;

player=player card[j];

睡眠(800);//在头文件函数#include windows.h中,充当休眠程序。

打破;

}

}

//如果玩家已经打完5张牌,玩家获胜并退出循环。

if(playercount==5)

{

Printf('玩家赢了!');

flag=true

打破;

}

for(int j=0;j 5;j)

{

//确定当前的牌可以打,比对手的大,而且你没打过这张牌。

if(计算机卡[j]玩家卡[j][1]==0)

{

Printf('计算机播放% c% d \ n ',Chuase [j],computer card[j]);

计算机计数;//计算机卡的数量1

//标记计算机已经打出这张牌

卡[j][1]=1;

computer=computer card[j];

睡眠(800);

打破;

}

}

//如果电脑已经打完5张牌,电脑获胜,退出循环。

if(计算机计数==5)

{

Printf('计算机赢了!');

flag=true

打破;

}

}

//如果玩家的牌大于电脑最大的牌,将电脑当前回合的牌值重置为0,继续下一回合。

if(玩家电脑)电脑=0;

//如果电脑的牌大于玩家的最大牌,则将玩家当前回合的牌值重置为0,继续下一回合。

if(电脑玩家)player=0;

如果(标志)断开;

}

}

//发牌后玩家的手牌

void PlayingCardsxswj()

{

printf(' player \ n ');

printf(' % d % d % d % d % d % d % d \ n ',playercard[0],playercard[1],playercard[2],playercard[3],playercard[4],player card[5]);

}

//发完牌后电脑的手牌

void PlayingCardsxsdn()

{

printf('电脑\ n’);

printf(' % d % d % d % d % d % d % d \ n ',computercard[0],computercard[1],computercard[2],computercard[3],computercard[4],computer card[5]);

}

//初始化树的头结点为空

void treechushihua(node *t)

{

t=空

}

//建立平衡二叉树

node *treecharu(node *t,int key)

{

//如果头结点为空,就将当前节点设置为根节点

if(t==NULL)

{

node * p;

p=(节点*)malloc(sizeof(节点));

p-data=key;

p-l child=NULL

p-RChild=NULL;

t=p;

}

//如果头结点不为空,则进行平衡二叉树的插入操作

其他

{

//插入结点的值小于根节点,则插入左子树

如果(关键t数据)

t-LChild=treecharu(t-LChild,key);

//插入结点的值大于等于根节点,则插入右子树

其他

t-RChild=treecharu(t-RChild,key);

}

return t;

}

//将玩家手牌存储到平衡二叉树中

节点*健力宝(节点*t)

{

int i,key

for(I=0;i5;我)

{

key=玩家卡[I];

t=treecharu(t,key);

}

return t;

}

//将电脑手牌存储到平衡二叉树中

节点*健力奇(节点*t)

{

int i,key

for(I=0;i5;我)

{

密钥=计算机卡[I];

t=treecharu(t,key);

}

return t;

}

//顺序输出玩家或电脑手牌

void treepaixu1(node *t)

{

如果(t!=空)

{

treepaixu 1(t-l儿童);

printf('%d ',t-data);

treepaixu 1(t-RChild);

}

}

//先序遍历玩家平衡二叉树

void treepaixu2(node *t,int *p)

{

if(t==NULL)返回;

其他

{

//先序遍历,将玩家手牌有序化

treepaixu2(t-LChild,p);

玩家卡[(* p)]=t-data;

treepaixu2(t-RChild,p);

}

}

//先序遍历电脑平衡二叉树

void treepaixu3(node *t,int *p)

{

if(t==NULL)返回;

其他

{

//先序遍历,将电脑手牌有序化

treepaixu3(t-LChild,p);

计算机卡[(* p)]=t-data;

treepaixu3(t-RChild,p);

}

}

//主函数

int main()

{

int k=0;

//随机函数,通过时间种子来获取随机数种子,获得随机数

srand((无符号)时间(空));

int n=0;

//选择菜单

而(k!=-1)

{

puts(" ");

puts(" ");

puts(" ");

printf('\t\t\t ****纸牌游戏* * * * \ n ');

printf('\t\t\t****1 .游戏说明* * * * \ n ');

printf('\t\t\t****2 .开始游戏* * * * \ n ');

printf('\t\t\t****3 .开始出牌* * * * \ n ');

printf('\t\t\t****4 .游戏结束* * * * \ n ');

printf(' \ t \ t \ t * * * * * * * * * * * * * * \ n ');

puts(" ");

printf(' \ t \ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ');

printf(' \ t \ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ');

puts(" ");

printf('\t\t\t请输入(1、2、3、4):\ n’);

scanf('%d ',k);

开关(k){

//游戏说明

案例一:PlayingCardsyxsm();打破;

//发牌阶段

案例2:{

//发牌

PlayingCardsfp();

//建立玩家二叉树

节点* t1=空

t1=健力布(t1);

printf('玩家手牌为:');

treepaixu 1(t1);

//建立电脑二叉树

节点* t2=空

t2=健力奇(T2);

puts(" ");

printf('电脑手牌为:');

treepaixu 1号(T2);

//玩家手牌有序化

n=0;

treepaixu2(t1,n);

//电脑手牌有序化

n=0;

treepaixu3(t2,n);

puts(" ");

//输出玩家和电脑的手牌

PlayingCardsxswj();

PlayingCardsxsdn();

打破;

}

//出牌阶段

案例3:{

PlayingCardscp();

打破;

}

//退出游戏

情况四:k=-1;打破;

}

}

返回0;

}

以上就是C语言实战之纸牌游戏的详细内容,更多关于C语言纸牌游戏的资料请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • ,,java 数据结构之堆排序(HeapSort)详解及实例
  • 留言与评论(共有 条评论)
       
    验证码: