C語言洗牌發牌程式,編寫乙個C語言程式,模擬洗牌和發牌的過程

時間 2022-03-14 00:05:21

1樓:

這種小case也能上競賽的門面上? 這個問題其實很簡單的啊,就只要三個函式而已。

乙個函式對應一種模式,撲克牌的四種花色可以用四個陣列來表示,每個陣列13張,再加大小王。(或者更簡單的你直接都放在乙個陣列裡。)

第乙個函式:隨機產生四個隨機數然後根據這些數字顯示對應的值即可。

第二個: 先產生27個隨機數輸出,然後在輸出剩下的27張。

第三個: 複製一下前面的陣列,也是對應的就行。

編寫乙個c語言程式,模擬洗牌和發牌的過程

求乙個c語言的洗牌發牌程式

c語言紙牌發牌程式源**(附注釋)

2樓:匿名使用者

其實發牌問題裡有個隨機的問題,就是模擬洗牌的問題,我來嘗試下這個程式吧(每個花色的**分別是:紅桃 \x3,方塊\x4,梅花\x5,黑桃\x6

#include

#include

char hua_se[4]=; //定義乙個陣列來存放花色

char *dight[14]=;//定義乙個指標型的陣列來存放數字

int fa_pai[4][13]=;//定義乙個二維陣列來發牌

void move(int fa_pai[4][13]);

void deal(int fa_pai[4][13],char huase[4],char *dight[4][13]);

int main(void)void move(int fa_pai[4][13])

fa_pai[row][column]=card;}}

void deal(int fapai[4][13],char hua_se[3],char *dight[13])}}}}

3樓:匿名使用者

#include

#include

#include

/*定義輸出與陣列下標不一致的排符*/

void print(int t)

}void main()

pai[52],num;

int i,j,k;

char a[4]=;

srand((unsigned)time(null));

for(i=0;i<=51;i++)

/*根據點數排序*/

for(i=0;i<=51;i++)

for(j=i+1;j<=51;j++)

if(pai[i].r > pai[j].r)/*根據花色排序*/

for(i=0;i<=3;i++)

for(j=i*13;j<=i*13+12;j++)for(k=j+1;k<=i*13+12;k++)if(pai[j].p > pai[k].p)/*控制輸出對齊*/

printf("\n");

printf(" ");

for(i=0;i<=3;i++)

}if(i==0)printf("\n\n\n");

if(i==1)printf(" ");

if(i==2)

if(i==3)printf("\n");}}

4樓:匿名使用者

你是要怎麼發牌?將一副牌都發出嗎?還是隨機的呀!

用c語言程式設計《洗牌和發牌模擬》

5樓:匿名使用者

洗發牌模擬程式: 一副撲克牌有54張,為簡單起見,撇去大小王不計,剩下52張撲克共4種花色:紅桃(heart),方塊(diamond),梅花(club),黑桃(spade),其ascii碼分別為3,4,5,6,撲克牌的面值則有十三種:

a(ace),兩點(deuce),三點(three),四點(four),五點(five),六點(six),七點(seven),八點(eight),九點(nine),十點(ten),丁鉤(jack),皇后(queen)與老k(king)。 發牌過程要求隨即以體現玩牌過程的公正性。發牌之前要先洗牌(shuffle),以打亂撲克牌的順序,增強隨機性。

洗牌和發牌過程的程式模擬方式為:用乙個4*13的整型二維陣列deck表示一副牌,值為0表示沒有牌,1~52之間的數代表撲克牌的發牌順序。行與花色相對,0~3分別代表紅桃,方塊,梅花和黑桃;列於面值對應,即0~9列分別表示數字a~10,10~12代表j,q,和k。

綜合起來若deck[1][9]的值為27,表示撲克牌方塊10為當前一手牌的第27張。發牌的邏輯可利用迴圈結構將二維陣列所對應的各撲克牌的花色與面值顯示出來

c語言程式設計——發牌洗牌模擬,求幫助

6樓:匿名使用者

#include

#include

#include

#include

#define suit 52

#define half 26

#define color ((char)13)

// 撲克牌的編碼是一組13進製的資料,從0編到51

// 函式tell用於解釋編碼的內容

int tell(char card, char * description)

;char *face = ;

//題幹比較奇怪,要求扣8張底牌,但是含大小王。正確的規則應該是不含大小王的情況下扣8張牌,每人11張牌就對了

//否則應該扣10張牌或者6張牌,否則每人發牌得到的牌數不相同(不是4的倍數)

//如需要,可自行定義jb=52,ja=53,suit=54,half=27即可。

//if (card > jb || card < 0 || !description) return 0;

//if (card == jb)

//if (card == ja)

i = card / color; j = card % color;

sprintf(description, "%s %s", suit[i], face[j]);

return 1;

}//初始化牌,形成乙個順序牌

int init(char *poker)

//end if

i = (choice - 1) * 11; //注意用11張牌,扣8張底牌

printf("his card is...\n");

for(j = i; j

printf("\n");

}while(1);

return 0;}

c語言發牌洗牌程式問題!急求!!

c語言程式請教,C語言程式設計請教 編寫一個程式,

你必須使用陣列來實現資料的結構為例stud number 20 20 stud name等等 學生成績管理系統是用來管理班級成績。有一些資訊在系統如下 學生 學生姓名 學生性別,c 得分,vb得分,電腦維修,平均得分,總分。實現簡單的功能 選單是 1 輸入學生的分數從鍵盤或從檔案 您可以建立子選單,...

c語言編寫軟體,C語言編寫乙個軟體?

依然特雷西 1 首先開啟pelles c,建立乙個新的專案檔案。2 然後輸入簡單的框架。3 接著用switch函式完成加減乘除操作。4 檢查輸入之後就可以計算結果了。這裡需要新增的 如下,之後便可以執行了。5 這裡我們輸入乙個例子。 難!你這賭開大了。並不是用c不能寫出介面來,其實,windows下...

C語言編寫標頭檔案圓面積公式,c語言 編寫乙個函式,用來計算圓的面積。

c語言編寫標頭檔案圓面積公式的源 如下 include void main float mj float x float a,c printf 請輸入半徑的數值 n scanf f a c mj a printf f n c float mj float x float z,pi 3.14159 z...