最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文實例為大家分享了C語言實現(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)文章

  • Mac OS X 10.8 中編譯APUE(Unix環(huán)境高級編程)的源代碼過程

    Mac OS X 10.8 中編譯APUE(Unix環(huán)境高級編程)的源代碼過程

    這篇文章主要介紹了Mac OS X 10.8 中編譯APUE(Unix環(huán)境高級編程)的源代碼過程,對于用MAC學(xué)習(xí)Unix環(huán)境高級編程的同學(xué)會有些作用,需要的朋友可以參考下
    2014-09-09
  • C++隱式類型轉(zhuǎn)換運算符operator type()用法詳解

    C++隱式類型轉(zhuǎn)換運算符operator type()用法詳解

    這篇文章主要介紹了C++隱式類型轉(zhuǎn)換運算符operator type()用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • C++中map和set的使用詳細(xì)攻略

    C++中map和set的使用詳細(xì)攻略

    set set是一種關(guān)聯(lián)式容器,下面這篇文章主要給大家介紹了關(guān)于C++中map和set使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-02-02
  • C++二叉樹的創(chuàng)建及遍歷詳情

    C++二叉樹的創(chuàng)建及遍歷詳情

    這篇文章主要介紹了C++二叉樹的創(chuàng)建及遍歷詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-07-07
  • QT網(wǎng)絡(luò)通信TCP客戶端實現(xiàn)詳解

    QT網(wǎng)絡(luò)通信TCP客戶端實現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了QT網(wǎng)絡(luò)通信TCP客戶端實現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 基于內(nèi)核線程的創(chuàng)建、使用和退出以及延時宏的補(bǔ)充說明介紹

    基于內(nèi)核線程的創(chuàng)建、使用和退出以及延時宏的補(bǔ)充說明介紹

    本篇文章是對內(nèi)核線程的創(chuàng)建、使用和退出以及延時宏的補(bǔ)充說明介紹進(jìn)行了敘述。需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)LeetCode(200.島嶼的數(shù)量)

    C++實現(xiàn)LeetCode(200.島嶼的數(shù)量)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(200.島嶼的數(shù)量),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++之Primer類型轉(zhuǎn)換方式

    C++之Primer類型轉(zhuǎn)換方式

    這篇文章主要介紹了C++之Primer類型轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • C++ Boost.Range與Adapters庫使用詳解

    C++ Boost.Range與Adapters庫使用詳解

    這篇文章主要介紹了C++ Boost.Range與Adapters庫使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-11-11
  • C語言完數(shù)的實現(xiàn)示例

    C語言完數(shù)的實現(xiàn)示例

    C語言中的完數(shù)指的是一個正整數(shù),本文主要介紹了C語言完數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論

兰州市| 佛山市| 保靖县| 红原县| 锦州市| 县级市| 临漳县| 龙游县| 肇庆市| 冀州市| 灵川县| 永清县| 辽宁省| 鹤壁市| 多伦县| 平顶山市| 西乡县| 兴国县| 林周县| 滨海县| 东阿县| 奇台县| 姚安县| 玉龙| 大田县| 昔阳县| 吴堡县| 吉隆县| 马尔康县| 峨边| 通道| 咸宁市| 常州市| 萍乡市| 平阳县| 苗栗市| 昌宁县| 巴彦县| 安阳县| 南江县| 海淀区|