ランダムシャッフルシステムC ++

タイトル

カードは出力をソートされた後、ランダムに4人、そしてすべての人の手に配布52ポーカーキングサイズに加えて、ランダムシャッフルシステムを設計してください。
照合:カラープレス行、スペード、ハート、クラブ、小から大への点で同じスーツの正方形片に続きます。前記点Aは点とみなします。
出力フォーマット:EURは、隣接する2枚のカードの間のスペースで区切って、1行を占めました。

分析

1関数ランドを(使用する)は、乱数を生成します。
図2は、、)(生成ソートソートと対数関数とすることができます。

コード

#include<cstdio>
#include<iostream>

#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int a[14],A[14];
int b[14],B[14];
int c[14],C[14];
int d[14],D[14];
int arr[53]={0};//如果一张牌被发,则其变为1 
int main()
{
	int i,n,j=1;
	arr[0]=1; 
	for(i=1;i<=13;)
	{
		n=rand()%52;//随机取数 
		if(arr[n]==0)
		{
			a[i]=n;
			arr[n]=1;
			i++;
		}
	}
	for(i=1;i<=13;)
	{
		n=rand()%52;
		if(arr[n]==0)
		{
			b[i]=n;
			arr[n]=1;

			i++;
		}
	}
	for(i=1;i<=13;)
	{
		n=rand()%52;
		if(arr[n]==0)
		{
			c[i]=n;
			arr[n]=1;

			i++;
		}
	}
	for(i=1;i<=52;i++)//对于d[i],我们只要找出剩余的13张牌 
	{
		if(arr[i]==0)
		{
			d[j]=i;
			arr[i]=1;
			j++;
		}
	}
	
	
	sort(a,a+14);//利用C++库函数排序 
	sort(b,b+14);
	sort(c,c+14);
	for(i=1;i<=13;i++)
	{
		A[i]=a[i]%4;a[i]=a[i]/4;if(A[i])a[i]++;//我用0,1,2,3给花色排序,1是红桃、2是梅花、3是方片 ,0是黑桃 
		
		B[i]=b[i]%4;b[i]=b[i]/4;if(B[i])b[i]++;
		C[i]=c[i]%4;c[i]=c[i]/4;if(C[i])c[i]++;
		D[i]=d[i]%4;d[i]=d[i]/4;if(D[i])d[i]++;
	}
	
	for(i=1;i<=13;i++)
		printf("%2d-%d ",a[i],A[i]);
	cout<<endl;
	for(i=1;i<=13;i++)
		printf("%2d-%d ",b[i],B[i]);
	cout<<endl;
	for(i=1;i<=13;i++)
		printf("%2d-%d ",c[i],C[i]);
	cout<<endl;
	for(i=1;i<=13;i++)
		printf("%2d-%d ",d[i],D[i]);
	cout<<endl;
	
    return 0;
 
}

結果

ここに画像を挿入説明

Tucao

私は<_>常に状況のうちの、疲れて、時間オーバーのため、この記事を書くために使用されます。

分析

私は非常に多くの徐兄弟トピックの夜楽しみにして、そのため、変更に変更して、単にそれを聞かせすることができるはず、これらのデータに非常に複雑なコードを感じます。ねえ。

リリース8元の記事 ウォンの賞賛1 ビュー251

おすすめ

転載: blog.csdn.net/xililixilu/article/details/104152935