0

私はゲームを書いていて、すべてのコードが機能しますが、コードを書くためのより効率的な方法を探しています。

この特定のコードを記述するより効率的な方法はありますか

 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 つのインスタンスに減らし、数量整数に「数」を動的に追加する方法があれば、プロジェクト全体で多くのコードを本当に解放できると思います。

4

2 に答える 2