`
471885810
  • 浏览: 6967 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

C++实现洗牌算法!

 
阅读更多

#include <iostream>
#include <iomanip>

using namespace std;
void shuffle(int [][13]);//======洗牌======
void deal(const int [][13],const char *[],const char *[]);//=======一次发完牌======

int main()
{
const char *suit[4]={"红桃","黑桃","梅子","方块"};
const char *face[13]={"A","2","3","4","5",
"6","7","8","9","10",
"J","Q","K"};
int deck[4][13]={0};

shuffle(deck);

cout<<"/n=====================================================/n";
deal(deck,face,suit);

cout<<"/n=====================================================/n";
system("PAUSE");
return 0;

}
void shuffle(int wDeck[][13])
{
int row,col;
for(int card=1;card<=52;card++)
{
do
{
row=rand()%4;
col=rand()%13;

}while(wDeck[row][col]!=0);
wDeck[row][col]=card;
}

}
//======发牌========
void deal(const int wDeck[][13],const char *wFace[],const char *wSuit[])
{
for(int card=1;card<=52;card++)
for(int row=0;row<=3;row++)
for(int col=0;col<=12;col++)
{
if(wDeck[row][col]==card)
{
cout<<setw(4)<<setiosflags(ios::right)
<<wSuit[row]<<wFace[col]
<<(card%2==0?"/n":"/t");
}
}
cout<<"***************************************************/n";
}

分享到:
评论

相关推荐

    c++实现洗牌算法源代码

    本主题主要关注如何使用C++实现洗牌算法,同时涵盖了与之相关的`random`类及其应用。洗牌算法的目标是将一个有序序列随机重排,使其达到无序状态,确保每个排列可能性相等。 C++标准库提供了头文件,它包含了各种...

    洗牌算法整理

    【洗牌算法】是计算机科学中用于生成等概率随机序列的一种方法,常见于各种需要随机化元素顺序的场景,如游戏、模拟等。洗牌算法的主要目标是确保原数组中的每个元素在打乱后都有相等的概率出现在序列的任何位置。 ...

    洗牌算法(感觉有点用)

    ### 洗牌算法解析与实现 在计算机科学领域,洗牌算法是一种常见的随机化算法,主要用于将一个序列中的元素打乱顺序,使其呈现出随机分布的状态。这种算法在多种场景下都有广泛的应用,如游戏开发、密码学、数据处理...

    随机数与洗牌算法

    通过上述分析,我们可以看出,无论是生成随机数还是实现洗牌算法,都需要充分考虑算法的设计原则及其实际应用中的效率问题。同时,正确理解和运用这些基础知识对于软件开发人员而言是非常重要的。

    C++代码实现洗牌发牌排序功能

    在这个场景下,我们可以创建一个表示扑克牌的结构体或类,并实现相应的洗牌和发牌算法。 1. **扑克牌的表示**: 我们可以创建一个`Poker`结构体,包含两个属性:花色(Hearts, Diamonds, Clubs, Spades)和数字(2...

    c++指针洗牌

    用c++语言实现的一个简单的洗牌、发牌的算法

    QtRandomNumber.rar

    总的来说,这个压缩包提供了一个学习和实践C++洗牌算法的实例,涵盖了从基础的随机数生成到更高级的Qt集成。对于希望提升C++编程技巧,特别是对随机数处理感兴趣的开发者来说,这是一个很好的学习资源。

    模拟洗牌与发牌程序用C++写的

    为了生成一个合理的洗牌效果,我们可以使用 Fisher-Yates(或Knuth)洗牌算法。这个算法保证了每次洗牌都是均匀分布的。 **Fisher-Yates 洗牌算法**步骤如下: 1. 从最后一张牌开始,对每一张牌执行以下操作: - ...

    C++实现打扑克牌的算法

    - **洗牌算法**:实现随机洗牌,可以使用Fisher-Yates(Knuth)洗牌算法,从最后一张牌开始,随机与未洗过的牌交换位置,直到第一张牌,确保每张牌都有相同概率出现在任何位置。 - **发牌算法**:根据游戏规则,...

    Baraja演示15种不同的洗牌特效

    例如,可以使用Fisher-Yates(也称为Knuth)洗牌算法,它通过遍历数组并将每个元素与其随机位置上的元素交换来实现洗牌。 3. **Fisher-Yates洗牌算法**:这是一种经典算法,其基本步骤包括从最后一个元素开始,每次...

    C++扑克牌的洗牌发牌游戏设计 程序设计:扑克牌的洗牌发牌游戏 .zip

    洗牌功能可以通过Fisher-Yates(也称为Knuth)洗牌算法实现,该算法通过随机交换数组中的元素实现。发牌则涉及从数组或向量中按顺序取出并返回一定数量的`Card`对象。 在C++中,可以利用`&lt;random&gt;`库来生成随机数,...

    C++实现洗牌发牌排序功能的示例代码

    C++实现洗牌发牌排序功能的示例代码 本篇文章主要介绍了C++实现洗牌发牌排序功能的示例代码,展示了如何使用C++语言来实现洗牌发牌排序功能。下面是该功能的实现细节: 一、定义扑克牌的数据结构 在该示例代码中...

    洗牌算法(Fisher–Yates Shuffle and Knuth-Durstenfeld Shuffle)

    Fisher–Yates Shuffle and Knuth-Durstenfeld Shuffle洗牌算法的C++实现。

    扑克牌游戏用C++实现

    - **洗牌算法**: - 采用随机交换的方式来模拟洗牌过程。具体实现为:从牌堆的顶部开始,随机选择一张牌与其交换位置,逐步向下推进直到牌堆底部。 - **发牌逻辑**: - 在完成洗牌后,将牌堆中的牌依次分配给玩家,...

    用c++实现简单的发牌程序

    程序的核心在于类`CardGame`,它包含了洗牌和检查重复元素的功能,然后桥牌和扑克游戏是`CardGame`的子类,分别实现了各自的发牌逻辑。 1. **类定义**: - `CardGame` 类包含两个私有变量 `i` 和 `j`,以及一个...

    基于WIN32控制台交互的广东麻将小游戏,c语言开发,使用了一些c++的类库 设计了洗牌,碰,杠,胡牌算法等

    设计了洗牌,碰,杠,胡牌算法。单机,1个真实玩家,3个电脑玩家 基于WIN32控制台交互的广东麻将小游戏,c语言开发,使用了一些c++的类库。设计了洗牌,碰,杠,胡牌算法。单机,1个真实玩家,3个电脑玩家 基于WIN32...

    c++ 发牌程序 数据

    4. **洗牌算法**:洗牌是发牌程序的关键部分,常用的算法是Fisher-Yates(也称为Knuth)洗牌算法。它通过遍历数组,每次选择一个随机位置的元素与当前位置的元素交换,保证了每次遍历结束后所有元素都有可能出现在...

    C++实现的斗地主游戏

    洗牌可以使用Fisher-Yates算法,确保随机性;发牌则需要考虑公平性和游戏规则,如地主额外的三张底牌。 在斗地主游戏中,牌型的判断是非常关键的部分。我们可以创建一个牌型判断类(PokerType),负责识别玩家手中...

    模拟洗牌游戏

    洗牌算法是本程序的核心之一,采用了经典的Fisher-Yates洗牌算法: - 初始化一个随机数种子,确保每次运行程序时洗牌的结果不同。 - 遍历牌组中的每一张牌。 - 对于每一张牌,随机选择另一张牌的位置,并交换它们的...

Global site tag (gtag.js) - Google Analytics