以前用C++写的洗牌和发牌的程序

王朝c/c++·作者佚名  2006-01-09
宽屏版  字体: |||超大  

#include <iostream.h>

#include <stdlib.h>

#include <stdio.h>

int pk[]={501,502,

101,102,103,104,105,106,107,108,109,110,111,112,113,

201,202,203,204,205,206,207,208,209,210,211,212,213,

301,302,303,304,305,306,307,308,309,310,311,312,313,

401,402,403,404,405,406,407,408,409,410,411,412,413};

int a[14],b[14],c[13],d[13];

class pack

{

public:

void makepack();

void fapack();

void disp();

};

void pack::makepack()

{

int temp,r,times;

cout<<"\n 洗牌次数:";

cin>>times;

cout<<endl;

for(int j=0;j<=times;j++)

{

for(int i=0;i<53;i++)

{

r=int(float(53-i)*rand()/RAND_MAX)+1;

temp=pk[i];

pk[i]=pk[r];

pk[r]=temp;

}

}

}

void pack::fapack()

{

int i,j;

j=0;

cout<<"正在发牌..."<<endl;

for(i=0;i<=53;i++)

{

a[j]=pk[i];

i++;

b[j]=pk[i];

i++;

if(j<=12)

{

c[j]=pk[i];

i++;

d[j]=pk[i];

}

if(j>12)

i++;

j++;

}

}

void pack::disp()

{

cout<<"a的牌是:";

for(int i=0;i<14;i++)

cout<<a[i]<<",";

cout<<endl;

cout<<"b的牌是:";

for(i=0;i<14;i++)

cout<<b[i]<<",";

cout<<endl;

cout<<"c的牌是:";

for(i=0;i<13;i++)

cout<<c[i]<<",";

cout<<endl;

cout<<"d的牌是:";

for(i=0;i<13;i++)

cout<<d[i]<<",";

cout<<endl;

}

int main()

{

cout<<"==============模拟洗牌&&发牌==============="<<endl;

cout<<"=说明: ="<<endl;

cout<<"= 以5开头的为鬼 ="<<endl;

cout<<"= 以1开头的为红桃 ="<<endl;

cout<<"= 以2开头的为方块 ="<<endl;

cout<<"= 以3开头的为葵扇 ="<<endl;

cout<<"= 以4开头的为草花 ="<<endl;

cout<<"==========================================="<<endl;

pack mypack;

mypack.makepack();

mypack.fapack();

cout<<endl;

mypack.disp();

getchar();

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有