KeyboardClicker - Wie schnell bist du?

    • Beta
    • Open Source

    Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von florian03.

      KeyboardClicker - Wie schnell bist du?

      Name:[/b]
      KeyboardClicker

      Beschreibung:[/b]
      Versuche, den angezeigten Buchstaben so schnell wie möglich zu drücken.
      Du kannst auch eine von 5 Schwierigkeiten auswählen. (Leicht, Mittel, Schwer, Superschwer, Unmenschlich)
      Deine Punkte werden gespeichet. Du siehst in der Titelleiste des Fensters deine Punkte.

      Screenshot(s):[/b]


      Verwendete Programmiersprache(n) und IDE(s):[/b]
      Visual Basic .NET / Visual Studio 2019

      Systemveränderungen:[/b]
      Nur speichern des Highscores, mit My.Settings. ...

      Download(s):[/b]
      u.teknik.io/8An0g.rar
      Dateigröße der Anwendung: 870,00 Kilobyte
      Dateigröße des VS-Projekts: 5,00 Megabyte
      Die Dateigrößen können leicht abweichen.
      Ein Programm zum entpacken von RAR-Dateien wird benötigt. Mein Vorschlag: Winrar (Windows)

      Lizenz/Weitergabe:[/b]
      OpenSource - Bitte aber bei Kopie o.ä. meinen Namen (Tizian170) angeben.
      Drücke auf Hilfreich, wenn dir dieser Post geholfen hat!
      Mein aktuelles Projekt
      Codar: 19%

      Link: bald
      Hallo,

      erstmal muss ich sagen - die Spielidee ist von Grundsatz her gar nicht so schlecht, wird nartürlich relativ schnell langweilig, da könnte man in Zukunft noch ein paar mehr Gamomodis einbauen...

      Ich hoffe dir macht ein wenig Kritik und ein paar Verbesserungsvorschläge nichts aus...
      Ich habe mir den Code mal angeschaut und schreibe einfach mal, was man besser machen kann:


      1. Gib deinen Controls UMBEDINGT Namen, sonst hast du als Fremder und du selbst (nach einiger Zeit) keine Chance zu erkennen, für was jenes Control zuständig ist. Bsp:

      VB.NET-Quellcode

      1. List3.Enabled = False
      2. List10.Enabled = True
      3. List9.Enabled = False
      4. List11.Enabled = False

      Ich würde dir außerdem empfehlen als Namenspräfiks eine Abkürzung des Types von dem Control zu nehmen, beispielsweise bei einer Textbox txt, bei einem Button btn. Dann hieße deine Textbox, wo du die Buchstaben anzeigst z.B. txt_letter (erkennt jeder, dass es sich 1. um eine Textbox handelt, und 2. darinne wohl die Buchstaben angezeigt werden)


      2. Du hast, um die Schwierigkeit einzustellen, bei allen MenuStripEinträgen den gleichen Code hinterlegt, sodass sich sehr viel Code doppelt. Des ist wirklich unschön..
      Was du ja jedes mal machen willst ist, dass du die anderen CheckBoxen nicht mehr auswählst und die neue Zeit setzt.
      Schreib dir dafür eine Methode, in der du dein ToolStripItem und die gewünschte Zeit übergiebtst. Dann "Decheckst" du alle Checkboxen und setzt anschließend bei der übergebenen Checkbox den Checkstatus wieder auf "true":

      VB.NET-Quellcode

      1. Private Sub SetDifficult(sender As ToolStripMenuItem, difficultTime As Integer)
      2. List4.Checked = False
      3. List5.Checked = False
      4. List6.Checked = False
      5. List7.Checked = False
      6. List8.Checked = False
      7. sender.Checked = True
      8. Time.Maximum = difficultTime
      9. End Sub


      Hier ein Beispiel wie du es dann Aufrufst:

      VB.NET-Quellcode

      1. Private Sub List5_Click(sender As Object, e As EventArgs) Handles List5.Click
      2. SetDifficult(sender, 3000)
      3. End Sub
      4. Private Sub List6_Click(sender As Object, e As EventArgs) Handles List6.Click
      5. SetDifficult(sender, 2000)
      6. End Sub
      7. Private Sub List7_Click(sender As Object, e As EventArgs) Handles List7.Click
      8. SetDifficult(sender, 1000)
      9. End Sub
      10. Private Sub List8_Click(sender As Object, e As EventArgs) Handles List8.Click
      11. SetDifficult(sender, 500)
      12. End Sub




      3. Den Buchstaben kannst du viel Einfacher heraussuchen:

      VB.NET-Quellcode

      1. Dim letter As String = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345678901234567890"(rnd.Next(0,35)).ToString()



      Das wäre mal das, was mir aufgefallen ist, Punkt 2 trifft noch bei anderen Stellen zu...

      Viele Grüße
      Florian
      ----

      WebApps mit C#: Blazor
      Entschuldigung, kannst du mir mal etwas erklären?
      rnd.NEXT

      Next ist kein member von rnd

      Letters.Text = (letter.Substring(randomN, 1))
      und dass auch nicht
      Drücke auf Hilfreich, wenn dir dieser Post geholfen hat!
      Mein aktuelles Projekt
      Codar: 19%

      Link: bald

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tizian170“ ()

      Versuche zu verstehen, was ich in meiner Codezeile mache.

      Du machst es so:

      VB.NET-Quellcode

      1. Dim N1 As Integer
      2. Dim randomN As New Random
      3. Dim alphabet As String = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345678901234567890" 'Zufällige(r) Buchstabe / Zahl
      4. N1 = randomN.Next(0, 25)
      5. Letters.Text = (alphabet.Substring(N1, 1))


      Das ist aus meiner Sicht relativ umständlich. Um einen zufälligen Buchstaben auszuwählen kannst du auch einfach folgendes machen:

      VB.NET-Quellcode

      1. Dim letter As String = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345678901234567890"(randomN.Next(0,35)).ToString()

      Nartürlich musst du jetzt noch den ​letterString bei deinem Label als Text setzen.
      Oder du machst alles auf einmal...
      ----

      WebApps mit C#: Blazor