小白求教---大神帮我看看这个算法怎么实现??--2个事件同时执行。
这个是看Primer.Plus.书的例题,我改编了一下。但发现好像给搞的复杂了。没有好的办法处理 2个同时的事件。大家有相关的代码可以贴上来,小弟不胜感激!谢谢啦1 有扑克4种花样 及 13个数.
2 当牌为红桃 和 黑桃时, 警察向坏人开枪;
3 当牌为方片 和 梅花时, 坏人向警察开枪;
4 警察和坏人各自的初始血量为4,受4枪后血量为0;
方法:警察和坏人一共统计52次抽牌,双方同时抽牌,双方向彼此开枪;这里假设警察每次随机抽牌只能抽到红桃 和 黑桃, 坏人每次随机抽牌只能抽到方片 和 梅花;但每次随机抽到牌的面值可能不同; 开枪次数见牌的面值(如“K”表示开13枪,最后显示警察,坏人的开枪数,以及赢得局数;
警察拔枪时间:1s(1000ms),坏人拔枪时间 1.5s 他们的抽牌时间为1s,
开4枪才能将对方打死,死后立即重生(如果对方同时死亡,双方各赢一局,同时重生),对方输一局需要重新抽牌,警察和坏人所开每枪的时间间隔为1s,最后程序执行的效果按下方所示:
Police Badman
1 P抽“红桃2” B抽“方片3” 1 (P为满血4 , B为满血4)(各自随机抽牌,但一定能在瞬时间抽到各自的牌)开始各自的拔枪动作;
1.5 1.5
2 P拔枪 2 1秒后P拔出了枪,开始开枪;
2.5 B拔出枪 2.5 1.5秒后B拔出了枪,开始开枪;
3 ---> 3 (P血量为4 , B血量为3)
3.5 <--- 3.5 (P血量为3 , B血量为3)
4 ---> 4 (P血量为3 , B血量为2)
4.5 <--- 4.5 (P血量为2 , B血量为2)
5 P抽“黑桃4” 5
5.5 <--- 5.5 (P血量为1 , B血量为2)
6 P拔枪 6
6.5 B抽“梅花3” 6.5
7 ---> 7 (P血量为1 , B血量为1)
7.5 7.5
8 ---> B拔出枪 8 由于P血量为1 , B血量为0,所以P赢一局, B输一局,这时B立即重生(血量4),B马上在1s后抽牌(因为B的抽牌时间是1s);
8.5 8.5
9 ---> B抽"方片5" 9 (P血量为1 , B血量为3) ;(抽牌是随机的,但B总是能够抽到 方片 或是 梅花)
9.5 9.5
10 ---> 10 (P血量为1 , B血量为2)
10.5 B拔出枪 10.5
11 P抽“红桃2” 11
11.5 <--- 11.5 (P血量为0 , B血量为2) P输一局,B赢一局,这时P立即重生(血量4),P马上在1s后抽牌
12 12
12.5 P抽“黑桃10” <--- 12.5 (P血量为3 , B血量为2)
13 13
13.5 P拔枪 <--- 13.5 (P血量为2 , B血量为2)
14 14
14.5 ---> <--- 14.5 (P血量为1 , B血量为1)
15 15
15.5 ---> <--- 15.5 (P血量为0 , B血量为0) P赢一局, B赢一局,这时P和B立即重生(血量都为4)
16 16
16.5 P抽“红桃A” B抽"梅花6" 16.5 (P血量为4 , B血量为4)
。。。。。。一直到警察 或 坏蛋 抽到第52次牌后 ,统计赢得局数。。。。
[此贴子已经被作者于2018-7-27 17:56编辑过]