溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用C語言隨機抽取紙牌

發(fā)布時間:2021-05-27 18:30:54 來源:億速云 閱讀:169 作者:Leah 欄目:編程語言

本篇文章為大家展示了如何使用C語言隨機抽取紙牌,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一、項目要求

本程序負責發(fā)一副標準紙牌,每張標準紙牌都有一種花色(梅花、方塊、黑桃、紅桃)和一個等級(2,3,4,5,6…K,A)。程序需要用戶指明手機有幾張牌,格式為:

Enter number of cards in hand:____
your hand: _____

二、原理

1.使用庫函數(shù)

time函數(shù)返回當前時間,用一個數(shù)表示,srand函數(shù)初始化C語言的隨機數(shù)生成器。通過把time函數(shù)返回值傳遞給srand可以避免程序每次運行發(fā)同樣的牌。rand函數(shù)產(chǎn)生隨機數(shù),通過%縮放。

2.利用二維數(shù)組記錄

程序采用in_hand二維數(shù)組對已經(jīng)選擇的牌進行記錄,4行表示每種花色,13列表示每種等級。
程序開始時,數(shù)組元素都為false,每隨機抽取一張紙牌時,檢查in_hand對應元素真假,如果為真,則抽取其他紙牌,如果為假,記錄到數(shù)組元素當中,提醒我們這張牌已經(jīng)記錄過了。

三、項目代碼

項目的具體代碼展示如下:

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


# define num_rates ((int) (sizeof(value)/sizeof(value[0])))
# define initial_balance 100.00
 
#define num_suits 4
#define num_ranks 13
 
int main(){

bool in_hand[num_suits][num_ranks] = {false};
int num_cards,rank,suit;

const char rank_code[] = { '2','3','4','5','6','7','8','9',
    't','j','q','k','a'};
const char suit_code[] = { 'c','d','h','s'};
printf("enter number\n");
scanf("%d",&num_cards);

printf("your hands\n");
while(num_cards>0){
 suit = rand()%num_suits;
 rank = rand()%num_ranks;
 if(!in_hand[suit][rank]){
 in_hand[suit][rank] = true;
 num_cards--;
 printf(" %c%c",rank_code[rank],suit_code[suit]);
 }
}
printf("\n");
return 0;
}

上述內(nèi)容就是如何使用C語言隨機抽取紙牌,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI