把一个由c++程序编写的发牌系统改成用MFC编写的

这是c++编写的,想改成单文档;源程序如下:#include<memory.h>#include<iostream>#include<ctime>#include<cst... 这是c++编写的,想改成单文档;源程序如下:
#include <memory.h>
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

const int NUM = 52;
const int DECK = 13;
enum SortType {SUIT, VALUE};
typedef struct CARD
{
int suit; // 取值0 - 3,分别表示梅花、方块、红心和黑桃
int value; // 取值2 - 10、J(11)、Q(12)、K(13)、A(14)
} Card;

void suffle(Card *cards)
{
int i, j, t;
Card c;
srand(time(NULL));

for (i = 0; i < NUM; ++i)
for (j = 0; j < NUM; ++j)
{
t = rand() % NUM;

if (j != t)
{
memcpy(&c, &cards[t], sizeof(Card));
memcpy(&cards[t], &cards[j], sizeof(Card));
memcpy(&cards[j], &c, sizeof(Card));
}
}
}

void sort(Card *cards, int size, SortType stype)
{
int i, j, k;
Card t;

for (i = 0; i < size-1; ++i)
{
k = i;

for (j = i + 1; j < size; ++j)
{
if ((stype == SUIT) && (cards[k].suit > cards[j].suit))
k = j;
else if ((stype == VALUE) && cards[k].value < cards[j].value)
k = j;
}

if (k != i)
{
memcpy(&t, &cards[i], sizeof(Card));
memcpy(&cards[i], &cards[k], sizeof(Card));
memcpy(&cards[k], &t, sizeof(Card));
}
}
}

void show(int suit, int value)
{
static char values[] = {'2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A'};

switch (suit)
{
case 0:
cout << "梅花 ";
break;
case 1:
cout << "方块 ";
break;
case 2:
cout << "红心 ";
break;
case 3:
cout << "黑桃 ";
break;
}

if (value == 10)
cout << "10";
else
cout << values[value-2];

cout << "\t\t";
}

void sortValue(Card *cards)
{
int p[4] = {0, 0, 0, 0};
int i, j;

for (i = 0; i < DECK; ++i)
++p[cards[i].suit];

j = 0;

for (i = 0; i < 4; ++i)
{
sort(cards + j, p[i], VALUE);
j += p[i];
}
}

void main(void)
{
Card cards[NUM];
Card A[DECK], B[DECK], C[DECK], D[DECK];
int i, j, s = 0, v = 2;

for (i = 0; i < NUM; ++i)
{
cards[i].suit = s;
cards[i].value = v;
++v;

if ((i+1) % 13 == 0)
{
++s;
v = 2;
}
}

suffle(cards);

j = 0;

for (i = 0; i < NUM; i += 4)
{
memcpy(&A[j], &cards[i], sizeof(Card));
memcpy(&B[j], &cards[i+1], sizeof(Card));
memcpy(&C[j], &cards[i+2], sizeof(Card));
memcpy(&D[j], &cards[i+3], sizeof(Card));
++j;
}

sort(A, DECK, SUIT);
sortValue(A);
sort(B, DECK, SUIT);
sortValue(B);
sort(C, DECK, SUIT);
sortValue(C);
sort(D, DECK, SUIT);
sortValue(D);

cout << "PLAYER 1" << "\t" << "PLAYER 2" << "\t";
cout << "PLAYER 3" << "\t" << "PLAYER 4" << endl;

for (i = 0; i < DECK; ++i)
{
show(A[i].suit, A[i].value);
show(B[i].suit, B[i].value);
show(C[i].suit, C[i].value);
show(D[i].suit, D[i].value);
cout << endl;
}

system("PAUSE");
}
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
imbs90523
2015-01-22 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:105万
展开全部
基本上要重新编写
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式