C语言实现发牌功能基本方法

41 篇文章 0 订阅
16 篇文章 1 订阅

  大家好!

  今天主要和大家聊一聊,如何利用C语言实现自动发牌程序。

第一:问题描述

    一副扑克有52张牌,打桥牌时应将牌分给4个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方块用D (Diamonds)表示,梅花用C (Clubs)表示。

第二:问题分析

思路:

这题实现起来还是比较简单的,只需定义两个多维的字符数组,第一个用来存放扑克的编号,第二个用来存放4个玩家的手牌。

52张牌发给4个人,需要发13轮,每轮按玩家的编号顺序给他们发牌,发牌时,用随机函数生成要发牌的编号(随机函数的介绍可以参考我第61天的练习),如果该牌之前没被发放(已发放的牌用'\0'标记),则将牌的编号存放到玩家的手牌数组中,同时将该牌的编号赋值为'\0'。如果生成的随机数对应的牌已经被发过了,则继续生成新的随机数。当52张牌全部发放完毕,打印发牌的结果。

扑克数组char poker[4][13];中的4表示花色种类有四种,13表示每种有13张(13个编号),扑克牌的编号(名字)用字符表示,分别为:{'2', '3', '4', '5', '6', '7', '8', '9', '0', 'J', 'Q', 'K', 'A'}('0'表示10)

玩家的手牌数组是一个三维字符数组,char players[PLAYER_NUMBER][4][13] = {0}; (PLAYER_NUMBER是玩家数量,4表示牌的花色种类有4种,13为某种花色的牌最多13张)

初始化时,手牌数组的所有值设置为'\0',表示手上无牌。

第三:代码实现

 

 

 

第四:运行结果

 总结:只有多练,在练的过程中,找到问题点逐个解决并总结,才能走的更远。

【学习交流群769843038

【下方分享一些学习教程资料】:

C语言表白程序这样写,99.9%能成功!

C语言基础教程之链表精讲

c语言自动编译,高效提升你的开发效率!

1小时带你入门Linux下C语言开发

c代码这样调试更高效

C语言编程基础

指针

【下方网盘免费资料包,需要的放心领取】:
嵌入式物联网 stm32 c/c++、QT Linux资料包【华清远见发放资料包】http://makerschool.mikecrm.com/7ADq4jq

 

 

 

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值