私はゲームを書いていて、すべてのコードが機能しますが、コードを書くためのより効率的な方法を探しています。
この特定のコードを記述するより効率的な方法はありますか
Select Case (N)
Case 1
If Player1HandGroup(14).QuantityInteger > 0 Or Player1HandGroup(17).QuantityInteger > 0 Or (Player1HandGroup(16).QuantityInteger > 0 And (IDbuster = 8 Or IDbuster = 9 Or _
IDbuster = 10 Or IDbuster = 11)) Then
DodgeBlockDisarmDialog.ShowDialog()
If DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.Cancel Or DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.OK Then
DodgeBlockDisarmDialog.PlayerTemp = T
End If
End If
Case 2
If Player1HandGroup(14).QuantityInteger2 > 0 Or Player1HandGroup(17).QuantityInteger2 > 0 Or (Player1HandGroup(16).QuantityInteger2 > 0 And (IDbuster = 8 Or IDbuster = 9 Or _
IDbuster = 10 Or IDbuster = 11)) Then
DodgeBlockDisarmDialog.ShowDialog()
If DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.Cancel Or DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.OK Then
DodgeBlockDisarmDialog.PlayerTemp = T
End If
End If
Case 3
If Player1HandGroup(14).QuantityInteger3 > 0 Or Player1HandGroup(17).QuantityInteger3 > 0 Or (Player1HandGroup(16).QuantityInteger3 > 0 And (IDbuster = 8 Or IDbuster = 9 Or _
IDbuster = 10 Or IDbuster = 11)) Then
DodgeBlockDisarmDialog.ShowDialog()
If DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.Cancel Or DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.OK Then
DodgeBlockDisarmDialog.PlayerTemp = T
End If
End If
Case 4
If Player1HandGroup(14).QuantityInteger4 > 0 Or Player1HandGroup(17).QuantityInteger4 > 0 Or (Player1HandGroup(16).QuantityInteger4 > 0 And (IDbuster = 8 Or IDbuster = 9 Or _
IDbuster = 10 Or IDbuster = 11)) Then
DodgeBlockDisarmDialog.ShowDialog()
If DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.Cancel Or DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.OK Then
DodgeBlockDisarmDialog.PlayerTemp = T
End If
End If
Case 5
If Player1HandGroup(14).QuantityInteger5 > 0 Or Player1HandGroup(17).QuantityInteger5 > 0 Or (Player1HandGroup(16).QuantityInteger5 > 0 And (IDbuster = 8 Or IDbuster = 9 Or _
IDbuster = 10 Or IDbuster = 11)) Then
DodgeBlockDisarmDialog.ShowDialog()
If DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.Cancel Or DodgeBlockDisarmDialog.DialogResult = Windows.Forms.DialogResult.OK Then
DodgeBlockDisarmDialog.PlayerTemp = T
End If
End If
End Select
それぞれのケースの唯一の違いは次のとおりです。N はどのプレイヤーが選択されるかを表し、NI の特定の数によって、構造グループ内のどの数量整数を調べるかを決定します。
どうにかしてそれを 1 つのインスタンスに減らし、数量整数に「数」を動的に追加する方法があれば、プロジェクト全体で多くのコードを本当に解放できると思います。