第15周 项目2---洗牌

来源:互联网 发布:ssm 怎么打印sql 编辑:程序博客网 时间:2024/06/02 07:28
/*Copyright (c)2016,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作    者:肖雪*完成日期:2016年6.15*版 本 号:v1.0*问题描述:在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。*           试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。*/
#include <ctime>#include <vector>#include <list>#include <iostream>#include <iterator>#include <cstdlib>using namespace std;using namespace std;typedef vector<int> IntVector;typedef unsigned int VIndex;void vectorShuffle(IntVector &unshuffled,IntVector &shuffled){    VIndex p,size=unshuffled.size();    while(size)    {        p=rand()%size--;        shuffled.push_back(unshuffled[p]);        unshuffled.erase(unshuffled.begin()+p);    }}int main(){    ostream_iterator<int> os(cout," ");    srand(time(NULL));    IntVector c,sc;    for(VIndex i=1; i<=54; i++)    {        c.push_back(i);    }    cout<<"Before Shuffle"<<endl;    copy(c.begin(),c.end(),os);    cout<<endl;    vectorShuffle(c,sc);    cout<<"\nAfter Shuffled"<<endl;    copy(sc.begin(),sc.end(),os);    cout<<endl<<endl;    return 0;}


0 0