#include <stdio.h>
#include <time.h>
char hua_se[4]={'\x3','\x4','\x5','\x6'} //定义一个数组来存放花色
char *dight[14]={"Ace","two","three","four","中毁搜five","six","seven","eight","nine","ten","jack","queen","king"}/余悔/定义一个指针型的数组来存放数字
int fa_pai[4][13]={0}//定义一个二维数组来发牌
void move(int fa_pai[4][13])
void deal(int fa_pai[4][13],char huase[4],char *dight[4][13])
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=1card<=52card++)
{
r=rand()
row=r%4
r=rand()
column=r%13
while(fa_pai[4][13]!=0)
{
r=rand()
row=r%4
r=rand()
column=r%13
}
fa_pai[row][column]=card
}
}
void deal(int fapai[4][13],char hua_se[3],char *dight[13])
{
char cint card,row,column
for(card=1card<=52card++)
{
for(row=0row<=3row++)
{
for(column=0column<=12column++)
{
if(fapai[row][column]==card)
{
if(card%3=0)c='\n'
elsec='\t'
printf("%5sof%-8s%c",hua_se[row],dight[column],c)
}
}
}
}
}
发牌原程序见我的空间(http://hi.baidu.com/crazycola/blog/item/52402bd4b3f68705a08bb746.html),可选是否包含大小王,可选发牌列数。以下为改过的版本,不包含大小王(即总数52张),丛誉只能发4堆。
另外附加了用户菜单,原程猜洞序中不含菜单部分。
代码如下:
---------------------------------------
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int menu()
{
int choice
printf("渗兆段1 发牌/0 退出:")
scanf("%d",&choice)
return choice
}
void main( void )
{
int i1, j, total
int *iArr
int tag = 0
char* pok_C[] = { "黑桃", "红桃", "梅花", "方块" }
char* pok_N[] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }
if(!menu()) exit(0)
total = 52
srand( (unsigned)time( NULL ) )
iArr = (int*)malloc(total*sizeof(int))
for( i1=0i1<totali1++ )
{
iArr[i1]=rand()%total
if( i1==0 ) continue
do {
tag = 0
for( j=0j<i1j++ )
if( iArr[j] == iArr[i1] )
{
iArr[i1]=rand()%total
tag = 1
}
} while( tag==1 )
}
for( i1=0i1<totali1++ )
{
printf("%s%s\t",pok_C[iArr[i1]%4],pok_N[iArr[i1]%13])
if(i1%4==3) printf("\n")
}
free(iArr)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)