欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)洗牌與發(fā)牌游戲

 更新時間:2020年12月29日 08:45:08   作者:零商  
這篇文章主要為大家詳細(xì)介紹了C語言洗牌與發(fā)牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)洗牌與發(fā)牌游戲的具體代碼,供大家參考,具體內(nèi)容如下

普通版

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define SUITS 4
#define FACES 13
#define CARDS 52

void shuffle(int wDeck[][FACES]);
void send(int wDeck[][FACES], const char* wSuit[], const char* wFace[]);

void main()
{
 int deck[SUITS][FACES]={0};
 const char* suit[SUITS]={"Heart","Diamond","Club","Spade"};
 const char* face[FACES]={"Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"};
 
 srand(time(NULL));
 shuffle(deck);
 send(deck, suit, face);
}

void shuffle(int wDeck[][FACES])
{
 int row,column,card;

 for(card=1;card<=CARDS;card++)
 {
 row = rand() % SUITS;
 column = rand() % FACES;
 while(wDeck[row][column] != 0)
 {
 row = rand() % SUITS;
 column = rand() % FACES;
 }
 wDeck[row][column] = card;
 }
}

void send(int wDeck[][FACES], const char* wSuit[], const char* wFace[])
{
 int card,row,column;
 for(card=1;card<=CARDS;card++)
 {
 for(row=0;row<SUITS;row++)
 {
 for(column=0;column<FACES;column++)
 {
 if(wDeck[row][column] == card)
 {
  printf("%5s of %-8s%c",wFace[column],wSuit[row], card % 2 ==0 ? '\n' : '\t');
 }
 }
 }
 }
}

高性能版

//先按順序填滿52個格子,再產(chǎn)生隨機(jī)格子相互交換

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define CARDS 52
#define FACES 13

struct card
{
 const char* face;
 const char* suit;
};
typedef struct card Card;

void shuffle(Card *const wDeck);
void send(const Card *const wDeck);//指針常量與數(shù)據(jù)常量均不可以改變,都用const限定,*前是限定指針,*后是限定數(shù)據(jù)

void main()
{
 const char* wSuit[]={"Heart","Diamond","Club","Spade"};//指針數(shù)組是一個數(shù)組
 const char* wFace[]={"Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"};
 int i;
 Card deck[CARDS];
 for(i=0;i<CARDS;i++)
 {
 deck[i].suit = wSuit[i / FACES];
 deck[i].face = wFace[i % FACES];
 }
 
 srand(time(NULL));
 shuffle(deck);
 send(deck);
}

void shuffle(Card *const wDeck)
{
 int i,j;
 Card temp;
 for(i=0;i<CARDS;i++)
 {
 j = rand() % CARDS;
 temp = wDeck[i];
 wDeck[i] = wDeck[j];
 wDeck[j] = temp;
 }
}

void send(const Card *const wDeck)
{
 int i;
 for(i=0;i<CARDS;i++)
 {
 printf("%5s of %-8s%c",wDeck[i].face,wDeck[i].suit, (i+1) % 4 == 0 ? '\n' : '\t');
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論