Prüfprogramm

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Prüfprogramm

    Morgen,
    ich hab einen wert der 30 sekunden entspricht die nicht überschritten werden dürfen
    werden die sekunden überschritten müssen für jede sekunde 3 punkte von 15 abgezogen werden

    nur hab ich grad keinen plan wie ich das anstellen soll


    hoffe mir kann jemand helfen

    MfG Saarländer

    saarländer schrieb:

    gibts villeicht ein tutorial oder ähnliches dafür?
    Wenn Du eins machst, gibt es eins.
    Wofür genau sollte es eins geben?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also oben steht in etwa die Funktion, die ich dafür verwenden würde, den Punktestand zum Zeitpunkt vergangeneZeit abzufragen. Sobald 30 Sekunden vergangen sind, wird werden je 3 Punkte pro Sekunde (allerdings erst ab der 30. Sekunde) abgezogen. Dazu bietet entweder TimeSpan selbst bereits eine Möglichkeit (Seconds oder so, da musst du aber abrunden) oder du dividierst die Ticks der TimeSpan von vornherein bereits einfach durch Timespan.TicksPerSecond oder verwendest von der StopWatch die ElapsedMilliseconds Eigenschaft und dividierst diese wieder durch 1000. Wichtig ist halt nur, dass du irgendwie an die Anzahl der Sekunden kommst. Diese Anzahl der Sekunden setzt du in die Funktion

    VB.NET-Quellcode

    1. Math.Max(0, 15 - Math.Max((vergangeneZeitInSekunden - 30) * 3, 0))

    ein. Der Sinn der Funktion ist, dass die Funktion (vergangeneZeitInSekunden-30) * 3 auf den Bereich von 0 bis 15 abbildet. Das wird dadurch bewirkt, dass der Wert minimal 0 sein kann und von 15 minimal 0 abgezogen wird, also keine positiven Werte davon rauskommen können (gilt logischerweise wegen min(-a, -b) = -max(a, b)).

    Der Rest ist verwendungszweckabhängig. Du könntest die Funktion in einem Timer ein Label updaten lassen oder so.

    Gruß
    ~blaze~