Dev C++编程模拟用扑克牌做小房子过程发牌过程,实现将一副不含大小王的52张用扑克牌做小房子过程随机发放给4个玩家,没人13张牌

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
你从一副没有大小王的52张扑克牌,无论抽到哪一张牌,将你到牌然后加6,所得和除以2,最后减去抽到的点数你运用整式知识解释
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
我想这个算题的精髓在于.假设最后的结果为M.抽到的点数为N.我们可以得出的结论就是 N=6—2 M .也就是说对方告诉你他计算出的结果M,你就可以得知他抽到的牌的点数N.具体计算过程如下:(6+N)2—N=M3+N/2—N=M3—N/2=M—N/2=M—3N/2=3—MN=(3—M)*2N=6—2M
为您推荐:
其他类似问题
扫描下载二维码开发一个自动发扑克牌牌的软件 52张扑克牌(无大小王)随机分发给4个玩家,每个玩家13张牌。_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
开发一个自动发扑克牌牌的软件 52张扑克牌(无大小王)随机分发给4个玩家,每个玩家13张牌。
2)数据包括:4种花色(黑、红、梅、方),每种花色13张牌(2、3、4、5、6、7、8、9、10、J、Q、K、A)。
3)按花色和大小依次输出每个玩家所发给的牌。
4) 要求使用:随机函数、循环、数组、函数、数组名作为函数的参数、模块化程序设计等知识
后面有注释,尽...
我有更好的答案
time.h&-&14}&&&&&&{&&2&cards[index].num&&&&,&&8&&&return&//玩家数#define&5;&{&&&&int&card_t;//定义牌组card_t&cards[ALL_CARD_NUM];//定义用户手牌card_t&player_cards[PLAYER_NUM][PLAYER_CARD_NUM];//将type转换成花色char&card_type(int&&&&&ASCII&码&,&&4&//返回黑桃的&ASCII&&&&=&0;&i&type)&{&&&&{&&&&&&&&case&0:&&&&&&&&&&&&return&4;&//返回方块的&j;&return&//每个用户的手牌数//定义牌的结构体typedef&1;&,&&9&&&&&nbsp,&&//返回梅花的&ASCII&#include&{&&&&//定义牌号&&&&static&char*&&&}//初始化牌组void&&TYPE_NUM;&++i)&{&ASCII&码&(type)&&//0&CARD_NUM&&0;,&&5&quot:&13&struct&nbsp,&init_cards()&,&&7&{&&&&int&case&&&++j)&&&Q&;&&-&4&TYPE_NUM&j;*&CARD_NUM)&(i&&&//总牌数#define&,&&3&&&&&&for&(j&=&PLAYER_CARD_NUM&(ALL_CARD_NUM&&码&&&&&&&&case&2:&&&&&&&&&&&&return&3;&//返回红桃的&&&stdlib.h&&nbsp:&&&&&&&card_nums[CARD_NUM]&=&&int&&//2&&&4&//牌的花色个数#define&{&&&&&&&&&&&&index&&&&&&/&PLAYER_NUM)&=&j;&&&&&&&&}&&&&}}//从牌组中随机获取一张牌,并将该位置的牌置为不可用,防止重复取到同一张牌card_t&get_card()&{&&&&card_t&c;&&&&int&i&=&rand()&%&ALL_CARD_NUM;&//随机0&至&ALL_CARD_NUM&-1中的一个数&&&&while&(-1&==&cards[i].num)&{&//如果该位置的牌无效则往后找牌&&&&&&&&++i;&//找下一张牌&&&&&&&&i&%=&ALL_CARD_NUM;&//如果超过牌组边界则从头开始找牌&&&&}&&&&c&=&cards[i];&//获得牌&&&&//将该位置的牌置为不可用&&&&cards[i].type&=&-1;&&&&cards[i].num&=&-1;&&&&return&c;}//随机将牌组中的牌发到用户手牌上void&init_player_cards()&{&&&&int&i,&j;&&&&for&(j&=&0;&j&&&PLAYER_CARD_NUM;&++j)&{&&&&&&&&for&(i&=&0;&i&&&PLAYER_NUM;&++i)&{&&&&&&&&&&&&player_cards[i][j]&=&get_card(cards);&//随机发牌&&&&&&&&}&&&&}}//为所有用户手牌排序void&sort_player_cards()&{&&&&int&i,&j,&k;&&&&card_t&c;&&&&//遍历所有用户手牌&&&&for&(k&=&0;&k&&&PLAYER_NUM;&++k)&{&&&&&&&&//使用冒泡排序&&&&&&&&for&(i&=&0;&i&&&PLAYER_CARD_NUM&-&1;&++i)&{&&&&&&&&&&&&for&(j&=&i&+&1;&j&&&PLAYER_CARD_NUM;&++j)&{&&&&&&&&&&&&&&&&//比较牌号,牌面一样大时比较花色(牌面大的放在前面)&&&&&&&&&&&&&&&&if&(player_cards[k][j].num&&&player_cards[k][i].num&||&&&&&&&&&&&&&&&&&&&&(player_cards[k][j].num&==&player_cards[k][i].num&&&&player_cards[k][j].type&&&player_cards[k][i].type))&{&&&&&&&&&&&&&&&&&&&&c&=&player_cards[k][i];&&&&&&&&&&&&&&&&&&&&player_cards[k][i]&=&player_cards[k][j];&&&&&&&&&&&&&&&&&&&&player_cards[k][j]&=&c;&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&}&&&&}}//打印所有用户手牌void&print_player_cards()&{&&&&int&i,&j;&&&&//遍历所有用户的手牌然后转化花色和牌号进行打印&&&&for&(i&=&0;&i&&&PLAYER_NUM;&++i)&{&&&&&&&&for&(j&=&0;&j&&&PLAYER_CARD_NUM;&++j)&{&&&&&&&&&&&&printf(&%c%s,&,&card_type(player_cards[i][j].type),&card_name(player_cards[i][j].num));&&&&&&&&}&&&&&&&&printf(&\n&);&&&&}}void&main()&{&&&&srand(time(NULL));&//使用时间作为随机种子,以防止每次运行的结果一样&&&&init_cards(cards);&//初始化牌组&&&&init_player_cards();&//随机发牌&&&&sort_player_cards();&//手牌排序&&&&print_player_cards();&//展示手牌}//注释应该够详细了,有不明白的就追问吧,望采纳。;num)&i;&switch&,&&10&;&&&&nbsp,&&&&nbsp,&*&CARD_NUM&+&&nbsp,&j&&&CARD_NUM;6;&&cards[index].type&=&J&;,&&6&&&&#include&i;&&&&&&&#define&PLAYER_NUM&4&=&i&&nbsp,&K&;&//依次为每张牌设置花色和牌号&&&&for&A&&};&&&&//按索引从牌号数组中取牌号&&&&return&card_nums[num];码&&&&}}//将num转换成牌号char*&card_name(int&//牌的数值个数#define&ALL_CARD_NUM&(TYPE_NUM&&&nbsp#include&&stdio.h&&nbsp
打印出来是这样,哪出问题了?用的是vc++6.0.谢谢
采纳率:40%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包学霸来帮个忙。从一副不含 大小王的52张扑克牌中任意抽出 5张。求至少有3张A 的概率 。_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
学霸来帮个忙。从一副不含 大小王的52张扑克牌中任意抽出 5张。求至少有3张A 的概率 。
我有更好的答案
来自:作业帮
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包从一副不含大小王的52张扑克牌中做了5次抽取,采用回置法,求至少得到一张A和一张K的概率_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
从一副不含大小王的52张扑克牌中做了5次抽取,采用回置法,求至少得到一张A和一张K的概率
从一副不含大小王的52张扑克牌中做了5次抽取,采用回置法,求至少得到一张A和一张K的概率
我有更好的答案
这是放回的抽取,因此每次抽取的结果是独立的。每次抽不到A或者K的概率为44/52=11/13;则5次都没抽到A或者K的概率为(11/13)^5;因此,5次抽取至少得到一张A或者K 的概率为1-(11/13)^5=0.5662
采纳率:81%
反面的情况是没有A也没有K,或者没有A或者没有K。都没有的话是44*43*42*41/(52*51*50*49)=7400没有A的概率是48*47*46*45/(52*51*50*49)=7400那么反面的概率就为(7400)*2-7400正面概率即为1-(7400)*2-至少得话就做反面
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包

我要回帖

更多关于 扑克牌 的文章

 

随机推荐