高性能洗牌与发牌程序

 

 

 

ContractedBlock.gifExpandedBlockStart.gif代码
1 // shuffle.cpp : Defines the entry point for the console application.
2  //
3  #include "stdafx.h"
4 #include <iostream>
5  using std::cout;
6  using std::cin;
7  using std::endl;
8  using std::ios;
9
10 #include <iomanip>
11 using std::setiosflags;
12 using std::setw;
13
14 #include <cstdlib>
15 #include <ctime>
16
17 struct Card {
18 char *face;
19 char *suit;
20 };
21 void fillDeck(Card*const,char*[],char*[]);
22 void shuffle(Card*const);
23 void deal(Card*const);
24
25 int main()
26 {
27 Card deck[52];
28 char *face[]={"Ace","Deuce","Three","four",
29 "Five","Six","Seven","Eight",
30 "Nine","Ten","Jack","Queen",
31 "King"};
32 char *suit[]={"Hearts","Diamonds",
33 "Clubs","Spades"};
34 srand(time(0));
35 fillDeck(deck,face,suit);
36 shuffle(deck);
37 deal(deck);
38 return 0;
39 }
40 void fillDeck(Card*const wDeck,char *wFace[],
41 char*wSuit[])
42 {
43 for (int i=0;i<52;i++){
44 wDeck[i].face=wFace[i%13];
45 wDeck[i].suit=wSuit[i/13];
46 }
47 }
48
49 void shuffle (Card*const wDeck)
50 {
51 for( int i=0;i<52;i++){
52 int j=rand() % 52;
53 Card temp=wDeck[i];
54 wDeck[i]=wDeck[j];
55 wDeck[j]=temp;
56 }
57 }
58
59 void deal(Card *const wDeck)
60 {
61 for(int i=0;i<52;i++)
62 cout<<setiosflags(ios::right)
63 <<setw(5)<<wDeck[i].face<<"of"
64 <<setiosflags(ios::left)
65 <<setw(8)<<wDeck[i].suit
66 <<((i+1)%2?'\t':'\n');
67 }

 

 

 

Eightof   Clubs  fourof  Hearts
 Jackof  Spades  JackofDiamonds
  Aceof  Hearts Eightof  Hearts
DeuceofDiamonds   TenofDiamonds
Sevenof  Spades   AceofDiamonds
Sevenof  Hearts Queenof  Hearts
 Jackof  Hearts   Aceof   Clubs
 Fiveof   Clubs  Fiveof  Hearts
QueenofDiamonds Threeof  Hearts
 fourof   Clubs  Nineof   Clubs
 fourof  Spades   Tenof  Hearts
Threeof   Clubs   Sixof  Hearts
 Kingof   Clubs Sevenof   Clubs
 Kingof  Spades  FiveofDiamonds
SevenofDiamonds  Nineof  Hearts
  Tenof  Spades Deuceof  Spades
 Jackof   Clubs EightofDiamonds
  Tenof   Clubs  Nineof  Spades
  Aceof  Spades  NineofDiamonds
 KingofDiamonds Threeof  Spades
  Sixof  Spades Eightof  Spades
  Sixof   Clubs Queenof   Clubs
ThreeofDiamonds  Kingof  Hearts
 fourofDiamonds  Fiveof  Spades
  SixofDiamonds Queenof  Spades
Deuceof  Hearts Deuceof   Clubs

转载于:https://www.cnblogs.com/vcyuyan/articles/1730339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值