C语言编写一个洗牌发牌程序 1) 洗牌功能 2) 发牌功能: 54张牌,随机发给4个玩家,要求显示各玩家及底牌. 3)

如题所述

第1个回答  2012-06-14
洗牌的程序

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

#define N 52

int main(void)
{
int poker[N + 1];
int i, j, tmp, remain;

/* 初始化阵列 */
for (i = 1; i <= N; i++)
{
poker[i] = i;
printf("%d ", poker[i]);
}
printf("\n");

srand(time(0));

/* 洗牌 */
for (i = 1; i <= N; i++)
{
j = rand() % N + 1;
tmp = poker[i];
poker[i] = poker[j];
poker[j] = tmp;
}

for (i = 1; i <= N; i++)
{
printf("%d ", poker[i]);
}

/* 判断花色 */
for (i = 1; i <= N; i++)
{
switch((poker[i] - 1) / 13)
{
case 0:
printf("桃"); break;
case 1:
printf("心"); break;
case 2:
printf("砖"); break;
case 3:
printf("梅"); break;
}

/* 数字 */
remain = poker[i] % 13;
switch(remain)
{
case 0:
printf("K "); break;
case 12:
printf("Q "); break;
case 11:
printf("J "); break;
default:
printf("%d ", remain); break;
}

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

return 0;
}

...洗牌功能 2) 发牌功能: 54张牌,随机发给4个玩家,要求显示各玩家及底...
int main(void){ int poker[N + 1];int i, j, tmp, remain;\/* 初始化阵列 *\/ for (i = 1; i <= N; i++){ poker[i] = i;printf("%d ", poker[i]);} printf("\\n");srand(time(0));\/* 洗牌 *\/ for (i = 1; i <= N; i++){ j = rand() % N + 1;tmp...

编写C语言程序,模拟将一副扑克牌54张随机分给4个人 (如何表达不同花色和...
int poke[13][4],joker[2],last_four_card[4]; \/\/定义四类十三张牌、双王 int i,j,card,count,tank[54],player[20],computer[2][20];bool flag;srand(time(NULL)); \/\/初始化随机种子 for(i=0;i<54;i++)tank[i]=-1; \/\/初始化容器 for(i=0;i<54;i++){ flag=1;while(...

C语言编程——发牌洗牌模拟,求帮助
leftCard[0]=wCard[i++];leftCard[1]=wCard[i++];leftCard[2]=wCard[i++];leftCard[3]=wCard[i++];Shuffle(card);\/\/再次将牌打乱 \/***发第二副牌,也只发50张,分别分给A,B,C,D四个位置,4张留底,一共8张底***\/ for (i=0; i<50; i++)\/\/发牌数 { \/\/printf("%...

c语言纸牌发牌程序源代码(附注释)
printf("%c",a[k-1]);for(j=i*13;j<=i*13+12;j++)if(pai[j].p >= (k-1)*13+1 && pai[j].p <= (k-1)*13+12+1 && pai[j].flag==0){print(pai[j].p);pai[j].flag=1;} } if(i==0)printf("\\n\\n\\n");if(i==1)printf(" ");if(i==2){printf("...

求高手帮忙写一个c语言发牌程序
int C[NUM];\/\/记录玩家手中的梅花牌 int D[NUM];\/\/记录玩家手中的方片牌 int manNum[NUM];\/\/记录玩家手里所有的牌 }man[PLAYER];\/\/随机产生52张牌 void PokerRand(int *pokerRand){ int i, j;srand((unsigned)time(NULL));for (i=0; i<SIZE; i++){ MARK: pokerRand[i] = ...

c语言编程用扑克牌洗牌和发牌
\/\/共52个元素 记作card[52]\/\/card代表扑克牌的类,有花色(color 枚举,0,1,2,3),点数(枚举 A~K)等属性 card tmp;for(int i=0;i<52;i++){ \/\/计算一个0到52之间的随机数x tmp=card[i];card[i]=card[x];card[x]=tmp;\/\/其实就是交换两张牌 } \/\/循环下来肯定每张牌...

c语言洗牌程序。将一副新的除去大王小王,52张扑克牌随机洗牌并输出#inc...
for(i=1; i<=N; i++) { if(i%13==0)poker[i]=13; else poker[i]=i%13; } 输入牌错误

c语言纸牌发牌程序源代码(附注释)
int main(void){srand(time(NULL));move(fa_pai);deal(hua_se,dight,fa_pai);printf("你是否想结束发牌?Y\/N");getch();return 0;}void move(int fa_pai[4][13]){int r,card,row,column;for(card=1;card<=52;card++){ r=rand();row=r%4;r=rand();column=r%13;while(fa_...

如何求C语言扑克牌洗牌发牌,发的牌要从大到小排序,每个部分都要用
void newDeck(int *a) { int i; for ( i=0;i<N;i++ ) a[i]=i+1; } \/\/洗牌,将花色和顺序打乱 void Shuffle(int *a) { int s,i,j,t;srand((unsigned int)time(NULL)); \/\/利用当前时间生成随机数种子 s=rand()%11+5; printf("随机洗牌%d遍\\n",s); \/\/第1个随机数...

C语言中用结构体设计一个可以显示花色和编号的扑克牌,并实现对这副扑克...
using namespace std;\/\/全局变量,一副牌 \/\/ int g_cards[54] = { 0,1,2,3,\/\/ 3 10,11,12,13,\/\/ 4 20,21,22,23,\/\/ 5 30,31,32,33,\/\/ 6 40,41,42,43,\/\/ 7 50,51,52,53,\/\/ 8 60,61,62,63,\/\/ 9 70,71,72,73,\/\/ 10 80,81,82,83,\/\/ J 90,91,92,93,...

相似回答