我不确定我应该给这个主题起什么名字,但我会解释一下情况。
我有一个存储卡值的数组。现在我正在为我的游戏实现闪避和格挡卡,所以我决定制作一个新的对话框视觉基础。在打开对话框之前,我的程序会检查被攻击的玩家手中(在数组中)是否有闪避或格挡卡,如果是,则打开对话框。
对话框打开后,它将我的模块化玩家回合变量“T”重新分配给玩家攻击的值,将其更改为玩家回合。
然后我加载我的通用子
从那里我将所有被攻击玩家的卡片加载到复选框中。
问题从这里开始 加载卡片后,我查看我的摘要索引,即玩家卡片索引。玩家按照他的设想保留他的牌,但不知何故,索引也会随机减去一张牌并添加一张随机牌。
例如
正确的卡片:
道奇 1
区块 1
头对接 1
拍打 1
踢 1
'额外的
戳-1
万岁玛丽 1
比较卡片的代码:
If LunchMoneyMainForm.T = 0 Then
For roll = 0 To 4
Dim temp As IEnumerable(Of LunchMoneyMainForm.Group) = _
From r In LunchMoneyMainForm.Player1HandGroup _
Where r.QuantityInteger > 0 _
Select r
If temp IsNot Nothing AndAlso temp.Count > 0 Then
Dim rolls As Integer = roll Mod 5
Number = (temp(LunchMoneyMainForm.Rnd.Next(0, temp.Count)).ID)
LunchMoneyMainForm.Player1HandGroup(Number).QuantityInteger -= 1
CheckBoxArray(rolls).Text = LunchMoneyMainForm.Player1HandGroup(Number).CardNameString
LunchMoneyMainForm.NumberArray(roll) = Number
End If
Next roll
For roll = 0 To 4
Number = LunchMoneyMainForm.NumberArray(roll)
LunchMoneyMainForm.Player1HandGroup(Number).QuantityInteger += 1
Next
End If
有一个更好的方法吗?
编辑:我注释掉了
'For roll = 0 To 4
' Number = LunchMoneyMainForm.NumberArray(roll)
' LunchMoneyMainForm.Player1HandGroup(Number).QuantityInteger += 1
'Next
我也拿出了LunchMoneyMainForm.Player1HandGroup(Number).QuantityInteger -= 1
,但我仍然得到一个项目的 +1 和一个项目的 -1。
所以我的 Linq 函数中的某些东西正在这样做。
编辑:我的球员卡摘要功能。
Private Sub PlayerHandToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlayerHandToolStripMenuItem.Click
For Me.intCount = 0 To 27
CountHandCards += Player1HandGroup(intCount).QuantityInteger + Player1HandGroup(intCount).QuantityInteger2 + Player1HandGroup(intCount).QuantityInteger3 _
+ Player1HandGroup(intCount).QuantityInteger4 + Player1HandGroup(intCount).QuantityInteger5
HandMsg = HandMsg & Player1HandGroup(intCount).CardNameString & ": " & Player1HandGroup(intCount).QuantityInteger & " " & Player1HandGroup(intCount).QuantityInteger2 & _
" " & Player1HandGroup(intCount).QuantityInteger3 & " " & Player1HandGroup(intCount).QuantityInteger4 & " " & Player1HandGroup(intCount).QuantityInteger5 & Environment.NewLine
Next intCount
MessageBox.Show("Card Quantities in Hand:" & Environment.NewLine & HandMsg & Environment.NewLine & "Hand Total: " & CountHandCards.ToString)
HandMsg = ""
CountHandCards = 0
End Sub
我知道摘要过程应该可以正常工作,因为在我加载 DodgeBlockCard 对话框之前不会显示错误的数据。