小白求教---大神帮我看看这个算法怎么实现??--2个事件同时执行。

xinyu_ufo 2018-07-25 09:53:31
这个是看Primer.Plus.书的例题,我改编了一下。但发现好像给搞的复杂了。没有好的办法处理 2个同时的事件。大家有相关的代码可以
贴上来,小弟不胜感激!谢谢啦
1 有扑克4种花样 及 13个数.
2 当牌为红桃 和 黑桃时, 警察向坏人开枪;
3 当牌为方片 和 梅花时, 坏人向警察开枪;
方法:警察和坏人一共统计52次抽牌,而且是同时抽牌和向彼此开枪; 开枪次数见牌的面值(如“K”表示开13枪,最后显示警察
坏人的开枪数,以及赢得局数;
警察拔枪时间:1s(1000ms),坏人拔枪时间 1.5s 他们的抽牌时间为1s,
开4枪才能将对方打死,警察和坏人所开每枪的时间间隔为1s
Police Badman
1 P抽“红桃2” 1
1.5 1.5
2 P拔枪 B抽“方片3” 2
2.5 2.5
3 ---> 3
3.5 B拔出枪 3.5
4 ---> 4
4.5 <--- 4.5
5 P抽“黑桃4” 5
5.5 <--- 5.5
6 P拔枪 6
6.5 <--- 6.5
7 ---> 7
7.5 B抽“梅花3” 7.5
8 ---> 8 P赢一局, B输一局
8.5 8.5
9 ---> B抽"方片5" 9
9.5 9.5
10 ---> 10
10.5 B拔出枪 10.5
11 P抽“红桃2” 11
11.5 <--- 11.5 P输一局,B赢一局
12 12
12.5 P抽“黑桃10” <--- 12.5
...全文
316 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-08-02
  • 打赏
  • 举报
回复
按照爱因斯坦相对论,没有任何两件事可以绝对地同时发生。
xinyu_ufo 2018-08-02
  • 打赏
  • 举报
回复
希望大神能给一个解决实例。。。。
_肆 2018-07-27
  • 打赏
  • 举报
回复
第一次抽牌也不是同时抽牌啊
xinyu_ufo 2018-07-27
  • 打赏
  • 举报
回复
引用 4 楼 tb0902956 的回复:
多线程也可以处理此类问题,但是代码要复杂很多


难道除了多线程处理此类问题, 用简单的 循环 + 跳转指令 不能处理了吗?? 我觉得这种并发的事件 很多啊,现在仅是2件相互影响,如果几十件相互影响的事件,还不疯掉。。。。
_肆 2018-07-27
  • 打赏
  • 举报
回复
如果是同时开始抽牌,再加上你举得例子里体现出的并不是一方获胜后被射击清零,而是累加计算的,这就和规则没关系了啊,最后牌抽完两边总数相同,除4是射击数,两方赢的一样多,如果你是以时间限制内,那倒是可以判输赢,只是判输赢的方式我觉得和多线程什么没关系吧,就好比算n!,明明有公式,而你要用for循环累乘,你这种题可以算最后的总数然后比较次数,但现在你想用1s的时间线去跑,感觉做起来到处都是BUG

比如你要同时开始抽牌,p抽了三次抽到2 2 4,b抽了四次抽到2 2 4 4,这时候会出现bp同时开第四枪的情况,你判谁赢

再者说你怎么用代码实现每次随机在两花色13数的牌里抽,是你输入吗,还是写随机算法,我想光这部分就很难

仔细想想你现在这个题不严谨到无法下手

xinyu_ufo 2018-07-27
  • 打赏
  • 举报
回复
引用 6 楼 qq_38319117 的回复:
第一次抽牌也不是同时抽牌啊

嗯 谢谢指正! 确实不是同时 抽牌,一前一后吧。本来想完善下题目,可是没有足够的权限改帖子。如果方便的话可以按“同时抽牌来设计程序”,重要的是怎么实现后面的过程---两个事件的交互过程。
xinyu_ufo 2018-07-25
  • 打赏
  • 举报
回复
网上查的 好像得用多线程??但 我觉得这个多线程是处理一些独立的 相互没有影响的事件吧?? 但是这个题目却是 2个相互有影响的事件,我想如果可以用 break , goto 等简单的跳转指令能否实现呢??发愁不知道下一步该怎么写了。。。。
tb0902956 2018-07-25
  • 打赏
  • 举报
回复
多线程也可以处理此类问题,但是代码要复杂很多
xinyu_ufo 2018-07-25
  • 打赏
  • 举报
回复
感谢楼上的答疑, 补充一下: 这里假设警察每次抽牌只能抽到红桃 和 黑桃, 坏人每次抽牌只能抽到方片 和 梅花;但每次抽到牌的面值可能不同;
636f6c696e 2018-07-25
  • 打赏
  • 举报
回复
方法:警察和坏人一共统计52次抽牌,而且是同时抽牌和向彼此开枪;
什么叫同时抽牌?警察坏人都抽到方块,坏人开两次枪?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧