新人求助,关于卡牌游戏的问题



  • 我想设置一个卡牌游戏,然后第一步就把我整蒙了。如何设置洗牌发牌? 比如总共10张牌,我想每回合给自己随机发一张牌,加入第一张发了1号牌,那么下次就只能在2到10里面随机选一张给我发了,怎么实现这个啊?



  • 我的思路是: 创建抽象对象【牌堆数组】和【手牌数组】,然后在牌堆数组的x轴上放10个元素(牌)。 每当你将一张牌加入手牌数组x轴的时候,就将那个元素从牌堆数组的对应位置删除。



  • 已经实现了。

    先创建三个数组,【牌堆】、【临时】、【手牌】。xzy分别为(0,1,1)。

    创建牌堆:将10张牌作为元素依次放到【牌堆】的x轴上。此时x轴的长度为10,xyz为(10,1,1)。

    洗牌:随机x轴长度以内的实数,也就是1~10。将该位置的元素添加到【临时】的x轴的尾部,然后将此元素从【牌堆】处删除。此时【牌堆】x轴的长度为9。重复执行直到x轴的长度为0,之后将【临时】的每个x轴的元素放回牌堆。完成洗牌。此时的牌堆已经是乱序的了。

    发牌:将【牌堆】x轴头部的第一个元素放到【手牌】的x轴尾部。然后删除【牌堆】x轴头部的第一个元素。完成给某人发牌。

    以上。


登录后回复