9922250
发表于 2014-10-28 22:13:35
回复 42# netegg
两天不来,想不到回复那么多,我还是把我的问题,重新整理,在发一次吧。
做这个程序,是想模拟赌场,赌博的情形:
开始:六副牌全部放在一起打乱,开始洗牌,因为打乱了,所以牌的顺序也是随机的.相当于六副牌的组合,他就一共有312张。
牌洗好了,现在要开始赌博了, 第一张丢弃,第二张发给庄家,第二张发给闲家,对比大小,四个花色也对比, 只能出现三种结果(大,小,和局)
继续循环,第四张丢弃,第五张发给庄家,第六张发给闲家,对比大小,
最后输出的结果为,就是这104盘的大小结果,排列方法为,竖徘以七小局为一小局:比如下面
大
大
大
大
大
大
大
------------------------------------------
第八局开始,
大 小
大
大
大
大
大
大
---------------------------------
第十五局开始,
大 小 小
大 小
大 小
大 小
大 小
大 小
大 小
---------------------------------
这样的排列方式。(上面的大小,是对比出来的)
9922250
发表于 2014-10-28 22:22:12
回复 44# kevinch
一共六副牌,312张, 你开了第一局以后,那么第一局的三张牌,都要丢掉。牌盒里就剩下309张,以此类推、
kevinch
发表于 2014-10-29 08:15:53
本帖最后由 kevinch 于 2014-10-29 08:17 编辑
回复 47# 9922250
思路已经给出了,具体如何处理楼主自己完善吧
每次登录这个网站,安全软件都提示是赌博网站,这类的问题还是少研究一点吧
pcbar
发表于 2014-10-30 14:55:04
#include <array.au3>
Dim $a, $b, $c
;建立数组
For $i = 0 To 5
For $j = 1 To 52
$a[$i * 52 + $j] = $j
Next
Next
Do
_ArrayDelete($a,Random(1, UBound($a - 1), 1));随机删除一个元素
For $k = 0 To 1 ;随机抽取2个元素
$t = Random(1, UBound($a) - 1)
$b[$k] = $a[$t]
_ArrayDelete($a,$t)
Next
bj()
Until UBound($a) = 1
Func bj();进行比较
Select
Case $b>$b
_ArrayAdd($c,"大")
Case $b<$b
_ArrayAdd($c,"小")
Case $b=$b
_ArrayAdd($c,"和")
EndSelect
EndFunc ;==>bj
;_ArrayDisplay($c)
;输出结果
_ArrayAdd($c,"")
For $i=1 To 7
For $j=0 To 14
ConsoleWrite($c[$i+$j*7])
ConsoleWrite("")
Next
ConsoleWrite(@CRLF)
Next