VB.net. Найдите 2 самых низких значения в массиве и удалите их - PullRequest
0 голосов
/ 08 января 2010

У меня есть простой массив для ролика Die.Я хочу бросить 5 шестигранных кубика и убрать 2 самых низких значения.Какой код поможет мне сделать это.вот мой основной код для 5 кубиков

Public Partial Class MainForm Public Sub New ()

    Me.InitializeComponent()

End Sub

Sub Button1Click(sender As Object, e As EventArgs)
    Dim d61 as Integer
    Dim d62 As Integer
    Dim d63 As Integer
    Dim d64 As Integer
    Dim d65 As Integer

    d61 = Int((6 - 1 + 1) * Rnd) + 1
    d62 = Int((6 - 1 + 1) * Rnd) + 1
    d63 = Int((6 - 1 + 1) * Rnd) + 1
    d64 = Int((6 - 1 + 1) * Rnd) + 1
    d65 = Int((6 - 1 + 1) * Rnd) + 1

    Dim Dicerolls(4) As Integer
        Dicerolls(0) = d61
        Dicerolls(1) = d62
        Dicerolls(2) = d63
        Dicerolls(3) = d64
        Dicerolls(4) = d65

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Вы можете просто отсортировать массив и удалить первые два элемента.

1 голос
/ 08 января 2010

Вот код, который использует общие списки для выполнения работы.

        Imports System.Collections.Generic
        Public Function GenerateRolls() As List(Of Integer)
            Dim diceCount As Integer = 5
            Dim rolls As List(Of Integer) = New List(Of Integer)

            Randomize() 'This will randomize your numbers'
            For i As Integer = 0 To diceCount
                rolls.Add(CInt(6 * Rnd()) + 1)
            Next

            rolls.Sort() 'sorts the array in ascending order.'

            'removes the two lowest rolls'
            rolls.RemoveAt(0)
            rolls.RemoveAt(0)

            'Write out all rolls to console'
            For i As Integer = 0 To rolls.Count - 1
                Console.WriteLine(rolls(i).ToString())
            Next

            Return rolls
        End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...