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

页: 1 2 3 [4]
查看完整版本: 问题:假设有 6副 副克牌,(一副是52张),就是一共312张。求随机排序