Je suis entrain de créer un petit stock de courtage en jeu comme un projet à part et couru à travers un problème

0

La question

Actuellement, le jeu permet de rendre aléatoire nouveau cours de bourse de valeurs pour les jours de match à chaque fois form5 se ferme et se rouvre. Mon objectif est de disposer d'une étude randomisée de valeur à jours: 2, 8, 5, 3, 13, 24, 29, pour le moment le jeu crée une valeur définie pour la première journée, mais quand le jeu se termine et le jour deux commence, à la fois le premier jour et deux prix sont aléatoires. Lorsque ce formulaire est fermé et rouvert le prix de l'aléatoire pour ces 2 jours de nouveau.

Ici est la sous-routine pour form2: ce formulaire affiche les stocks disponibles marques l'utilisateur peut "investir" dans, cette montre de la sous-routine lorsque l'utilisateur clique sur la tesla stock:

Public Shared Sub tesla(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Teslal.Click


    stockbrand.tesla()
    Teslastock.Show()
End Sub

Ici est la sous-routine pour stockbrand.tesla:

Shared Sub tesla()
    stockrand(2, 8, 5, 3, 13, 24, 29)
End Sub

et puis stockrand est responsable de la génération de valeurs aléatoires à des jours précis:

 Public Shared Function stockrand(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As Integer, ByVal g As Integer)
    For i As Integer = 1 To Form2.DAYno.Text

        If i = a Then
            Teslastock.at1986(a.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)

        ElseIf i = b Then
            Teslastock.at1986(i.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)

        ElseIf i = c Then
            Teslastock.at1986(i.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)

        ElseIf i = d Then
            Teslastock.at1986(i.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)

        ElseIf i = e Then
            Teslastock.at1986(i.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)

        ElseIf i = f Then
            Teslastock.at1986(i.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)

        ElseIf i = g Then
            Teslastock.at1986(i.ToString & "/8/86 1986", CInt(Int((11 * Rnd()) + 1)) * 2000)
        Else
            Teslastock.at1986(i.ToString & "/8/86 1986", Math.Sin(i) * 2000)
        End If
    Next
End Function

le graphique créé par la fonction ressemble à un péché graphique avec les exceptions à des jours précis et de prix négatifs valeurs sont multipliées par -1 pour donner un rationnel prix

Teslastock.show affiche le formulaire sur lequel le graphe est placé

vb.net
2021-11-23 21:56:57
1

La meilleure réponse

0

Certains de vos problèmes sont causés par ne pas avoir d'Option Strict Sur. Il devrait être sur. Propriétés du projet -> onglet Compiler. Également pour des projets futurs Outils -> Options -> les Projets et les Solutions -> VB par Défaut

Fonctions dans vb.net besoin d'un Type et un Return l'énoncé. Vous n'êtes pas de retour, donc pourquoi êtes-vous à l'aide d'un Function? L'utilisation d'un Sub.

Je ne sais pas ce DAYno sur Form2 est mais quand je vois un Text bien, cela signifie un String pour moi. Vous ne pouvez pas avoir un String dans le To la clause d'un For boucle, donc la CInt()

Déclarer une instance de la Random dans la classe de Classniveau. Nous avons seulement besoin d'un nouveau nombre aléatoire (pas une nouvelle instance de la Random classe) une fois par itération. Près que j'ai pu faire, il serait un nombre entre 1 et 12. Je me souviens à peine Rnd(). L' Next la méthode de la Random la classe fournit un Integer compris le premier argument et moins que la seconde.

Tous ceux If...ElseIfs ont presque identiques code. J'ai essayé de trier avec un Select Case. Les 2 premiers cas, envoyer un Integer pour at1986 mais le troisième envoie un Doubledonc les 2 méthodes dans le Teslastock la classe avec des signatures différentes.

Peut-être que vos problèmes vont disparaître avec ces corrections.

Private Rand As New Random()

Public Sub stockrand(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As Integer, ByVal g As Integer)
    For i As Integer = 1 To CInt(Form2.DAYno.Text)
        Dim r = Rand.Next(1, 13)
        Select Case i
            Case a
                Teslastock.at1986($"{a}/8/86 1986", r * 2000)
            Case b, c, d, e, f, g
                Teslastock.at1986($"{i}/8/86 1986", r * 2000)
            Case Else
                Teslastock.at1986($"{i}/8/86 1986", Math.Sin(i) * 2000)
        End Select
    Next
End Sub

Public Class Teslastock
    Public Shared Sub at1986(strDate As String, aNumber As Integer)
        'Some code
    End Sub

    Public Shared Sub at1986(strDate As String, aNumber As Double)
        'Some code
    End Sub
End Class
2021-11-24 03:29:56

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................