回复 MicroBlue
谈谈我的思路!
我代码里面没有什么排除之类意思,而是在将数组元素移动位置。
我们 ...
水木子 发表于 2012-5-13 15:53 
收牌的时候也可以将观众指定的那组牌放在最开始或最后,假设在A组,收起来的顺序可以是A/B/C,A组在最上面,然后发牌的时候(假设铺着发牌),那么应该从牌的最下面一张开始往上发,这样可以保证最后观众所记忆的这张牌会被移动他所选那组的最开始位置.
呵呵,我只改了你的_Events()函数,收牌顺序是A/B/C(假设在A组,)你可以试试看效果和你的一样.Func _Events()
Switch @GUI_CtrlId
Case -3
Exit
Case $Label1
_SetData($Label1, $Label2, $Label3) ;观众选的最先收
Case $Label2
_SetData($Label2, $Label3, $Label1) ;观众选的最先收
Case $Label3
_SetData($Label3, $Label1, $Label2) ;观众选的最先收
EndSwitch
$iNum += 1
If $iNum = 4 Then
$sText = GUICtrlRead($Label1)
$aText = StringSplit($sText, ',', 2) ;观众选的在第一张了
GUICtrlSetData(3, '我猜你心里想的数是:' & $aText[0])
$iNum = 0
Else
GUICtrlSetData(3, '第 ' & $iNum & ' 次提问,你想的数字在下面哪排呢?请点击。')
EndIf
EndFunc ;==>_Events
但是这种方法不能排错,就是别人故意乱选的 |