标题:向朋友们请教“关于洗牌和发牌程序”
取消只看楼主
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
 问题点数:0 回复次数:2 
向朋友们请教“关于洗牌和发牌程序”


-----------------本来设计了一个洗牌程序,后来又想用字符串的知识修改成可以在洗牌后发牌的程序。52张牌,洗完后,每人分到13张,并且显示。我企图用strcpy()来完成,可是却遇了错误,请大家指点一下。。谢谢------------------------


#include<iostream>
#include<string>
#include<ctime>
#include<cstdlib>
using namespace std;
enum Suit{clubs,diamonds,hearts,spades};
const int jack=11;
const int queen=12;
const int king=13;
const int ace=14;

class Card
{
private:
int number;
Suit suit;
public:
Card ()
{}
void set(int n,Suit s)
{
number=n;
suit=s;
}
void display();
};

void Card::display()
{
if(number>=2&&number<=10)
cout<<number;
else
switch(number)
{
case jack: cout<<"J";break;
case queen: cout<<"Q";break;
case king: cout<<"K";break;
case ace: cout<<"A";break;
}
switch(suit)
{
case clubs: cout<<static_cast<char>(5);break;
case diamonds: cout<<static_cast<char>(4);break;
case hearts: cout<<static_cast<char>(3);break;
case spades: cout<<static_cast<char>(6);break;
}
}

int main()
{
const MAX=13;
Card deck[52];
Card puck1[MAX];
Card puck2[MAX];
Card puck3[MAX];
Card puck4[MAX];
int j;
string s1;

for(j=0;j<52;j++)
{
Suit su=Suit(j/13);
int nu=(j%13)+2;
deck[j].set(nu,su);
}

cout<<"\nOrdered deck:\n";
for(j=0;j<52;j++)
deck[j].display();

cout<<"Now,swapping...";

srand(time(NULL));
for(j=0;j<52;j++)
{
int k=rand()%52;
Card temp=deck[k];
deck[k]=deck[j];
deck[j]=temp;
}
cout<<"\nShuffled deck:\n";
for(j=0;j<52;j++)
{
deck[j].display();
}

for(j=0;j<13;j++)
{
strcpy(puck1[j],deck[j]);
cout<<"the palyer1:"<<endl;
puck1[j].display();
}

for(j=13;j<26;j++)
{
strcpy(puck2[j],deck[j]);
cout<<"the palyer2:"<<endl;
puck2[j].display();
}

for(j=26;j<39;j++)
{
strcpy(puck3[j],deck[j]);
cout<<"the palyer3:"<<endl;
puck3[j].display();
}

for(j=39;j<53;j++)
{
strcpy(puck4[j],deck[j]);
cout<<"the palyer4:"<<endl;
puck4[j].display();
}

return 0;
}

[此贴子已经被作者于2006-3-9 19:20:41编辑过]

搜索更多相关主题的帖子: 发牌 洗牌 朋友 
2006-03-09 19:19
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 
但问题是strcpy为什么在这个程序中没有完成考贝功能?

错在哪里呢?

有实力才会有魅力 实力来自坚持不懈的努力
2006-03-10 12:08
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 

我知道了.确实..我忽视了越界的问题..

不过按照你这样的话.要把CLASS里面的private改成public才行呢.这样有点危险吧...

谢谢你啊..呵呵..


有实力才会有魅力 实力来自坚持不懈的努力
2006-03-10 17:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-49408-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062510 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved