
怎么用C++设计程序 随机出牌
实验内容:设计一个21点的游戏,游戏规则如下:两个玩家,一个是人,一个是电脑。首先由电脑随机派两张牌给人类玩家(牌不能重复,牌的表示方式为花色牌号,如红桃8)想问怎么设计...
实验内容:设计一个21点的游戏,游戏规则如下:
两个玩家,一个是人,一个是电脑。首先由电脑随机派两张牌给人类玩家(牌不能重复,牌的表示方式为 花色牌号,如红桃8)
想问怎么设计一个随机函数或者方法让电脑随机出牌呢?
列如: 梅花5 方块8 黑桃3 。。。。
牌的花色怎么随机啊?
下面是我的代码。
怎么样能让电脑重复发出两张牌呢?
我下面的程序只能发一张
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
using namespace std;
int playcard(int);
int playpocker(int);
int main()
{int i,j;
cout<<"玩家阶段"<<"玩家获得牌:"<<endl;
i=playpocker(i);
j=playcard(j);
string pocker[4]={"红桃","方块","黑桃","草花"};
string card[13]= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
cout<<pocker[i]<<card[j]<<endl;
return 0;
}
int playpocker(int)
{int i;
srand(time(0));
i = rand()%4;
return(i);
}
int playcard(int)
{int j;
srand(time(0));
j = rand()%13;
return(j);
} 展开
两个玩家,一个是人,一个是电脑。首先由电脑随机派两张牌给人类玩家(牌不能重复,牌的表示方式为 花色牌号,如红桃8)
想问怎么设计一个随机函数或者方法让电脑随机出牌呢?
列如: 梅花5 方块8 黑桃3 。。。。
牌的花色怎么随机啊?
下面是我的代码。
怎么样能让电脑重复发出两张牌呢?
我下面的程序只能发一张
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
using namespace std;
int playcard(int);
int playpocker(int);
int main()
{int i,j;
cout<<"玩家阶段"<<"玩家获得牌:"<<endl;
i=playpocker(i);
j=playcard(j);
string pocker[4]={"红桃","方块","黑桃","草花"};
string card[13]= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
cout<<pocker[i]<<card[j]<<endl;
return 0;
}
int playpocker(int)
{int i;
srand(time(0));
i = rand()%4;
return(i);
}
int playcard(int)
{int j;
srand(time(0));
j = rand()%13;
return(j);
} 展开
4个回答
展开全部
给你提供一个思路
把牌和花色搭配好成为一种情况,总共的情况就是:花色*牌号=4*13=52;
1:红1
2:红2
3:红3
……
52:梅13
把这个组成一个首尾相连的链表。
然后再写个1—52的随机数生成器生成x
出牌号=上次位置向前数x个。然后删除这个牌号。成新的环链表。
继续直到表空。
把牌和花色搭配好成为一种情况,总共的情况就是:花色*牌号=4*13=52;
1:红1
2:红2
3:红3
……
52:梅13
把这个组成一个首尾相连的链表。
然后再写个1—52的随机数生成器生成x
出牌号=上次位置向前数x个。然后删除这个牌号。成新的环链表。
继续直到表空。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-03-20 广告
AI Agent框架是一套用于构建、管理和优化AI智能体的技术架构和工具集。它以大型语言模型为核心,支持AI智能体感知环境、自主决策并执行任务。AI Agent框架提供了任务执行、数据管理、记忆管理等必要组件,帮助企业实现业务自动化、客户服...
点击进入详情页
本回答由Link.AI提供
展开全部
#include<iostream>
#include<ctime>
int main()
{
srand(time(0));
int card=rand()%12+1,color=rand()%4+1;
cout<<card<<' '<<color;
return 0;
}
#include<ctime>
int main()
{
srand(time(0));
int card=rand()%12+1,color=rand()%4+1;
cout<<card<<' '<<color;
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
card[4][13]
第一维花色 第二维牌号
第一维花色 第二维牌号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。。用0-3或者1-4代表花色。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询