Poj 1786 Bridge Hands

本文介绍了一种基于优先级排序的纸牌游戏发牌算法。该算法将一副52张牌按照花色和点数优先级分配给四名玩家,并实现顺时针发牌流程。通过使用C++结构体和数组进行高效处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.将52张牌发给4个人,每人13张。

 

2.排序输出,按suit的优先级大于rank。

 

3.suit的优先级为C<D<S<H。代表(club) < (diamond) < (spade) < (heart)。

 

4.rank的优先级为2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A 。

 

5.玩家的名称为东南西北,每次一个发牌者,从他左手开始发,顺时针直到最后一张牌发给他自己。

 

6.读入一副牌,打印出每个人的牌最后排序的结果,玩家按南西北东。

 

 

 

 

 

收获:

1. 在将字符转化成数字便于排序的时候直接定义了一个const char S[]={"CDSH"},R[]={"23456789TJQKA"};

这样每个字符都和一个优先级数字对应起来。

之前手写写的switch,代码长,WA了之后不便于查错,而且容易某个地方写挫了检查不出来。

 

2.发牌需要知道发牌者以便确定第一张牌给谁,定义了一个cur即为当前领牌的人,将所有玩家写入数组player[5][15],默认打印顺序,

即南->0,西->1,北->2,东->3。在读入的时候比较好处理。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值