如何用c语言编写纸牌发牌程序

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:48:51
一付扑克牌52张共4种花色,用户可选择“1---发牌”将这52张牌随机发成4敦;或选择“0----退出”退出程序。
提示:
用一个具有52个元素的数组(如char p[52][5])存放这52张牌的内容,如P_i表示黑桃、H_i表示红桃、C_i表示梅花、D-i表示方块;程序中可以首先初始化该数组,然后显示菜单等待用户选择输入,用户选择“发牌”,程序调用“发牌”函数;在发牌函数中,可使用C 中的产生随机数的函数(参看rand(),srand(),random()等函数的使用说明)一个随机数m,选取一张牌{p[m]},将其与最前面的牌交换位置,即将选取的牌放在最前面;然后对数组p余下的牌重复选取操作,直到所有牌均重排列;最后按13行*4列输出发牌结果

#include <stdio.h>
#include <vector>
#include <algorithm>

using namespace std;

void DealCards();

int main()
{
// step 1: input state.
printf("please input 1 for deal cards, 0---exit.");
int i = 0;
scanf("%i", &i);
printf("\n");

if (i == 0)
{
return 0;
}
else
{
// step 2: deal cards
DealCards();

}
return 0;
}

void DealCards()
{
// step 1: initial cards
char p[52][5];
vector<int> vip;
int i, j;
for (i = 1; i <= 13; i++)
{
for (j = 0; j < 4; j++)
{
switch (j)
{
case 0:
sprintf(p[j * 13 + i - 1], "%s_%2i", "P", i);
break;
case 1:
sprintf(p[j * 13 + i - 1], "%s_%2i", "H", i);
break;
case 2: