MasterMindLogic.dll

    • Beta

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

      MasterMindLogic.dll

      Logik für das Spiel MasterMind als Dll:
      Vielleicht kennt der ein oder andere von euch das Spiel Mastermind ?!?

      Für alle die es nicht kennen, hier eine kleine Erklärung.
      Es handelt sich um ein Spiel, das alleine (Computer) oder zu zweit (Real Life) gespielt wird.
      Der aktive Spieler muss 4 aus 6 Farben und deren Position erraten.
      Hierfür hat er 10 Versuche.
      Am Ende jedes Versuches wird der Versuch bewertet, dabei werden kleine Stifte (Weiß und Schwarz) als Hinweis gesteckt.
      Weiß = Farbe wurde erraten, steckt aber an der falschen Position
      Schwarz = Farbe wurde erraten und die richtige Position wurde erkannt.

      Beschreibung:
      Die hier angebotene Dll, bildet die Logik für das Spiel ab.

      Screenshot(s):
      Screenshot der Funktionen, Properties und Events der Dll im Anhang

      Verwendete Programmiersprache:
      Erstellt in VB.NET - Framework 2
      IDE: VS 2010 Pro

      Systemanforderungen:
      Die Dll läuft auf allen Systemen ab Windows XP SP2 und Linux (Mono)

      Download:
      Im Anhang (7kb)

      Versionen:
      1.0.0
      Erste Version

      1.1.0
      Zwei kleine Bugfixes

      1.2.0
      Auswahl - jede Farbe nur einmal oder mehrmals - eingebaut
      RowFinished-Event in RowCompleted umbenannt

      1.3.0
      Bug beim Auswerten gefixed

      1.4.0
      Für das Ermitteln der besten Leistung (Highscore) wurde die Ausgabe der aktuell bearbeiteten Reihe benötigt.
      Lib wurde deshalb um die Property GetCurrentRow erweitert


      Lizenz/Weitergabe:
      Diese Lib ist Freeware und darf für nicht kommerzielle Zwecke beliebig verwendet und weitergegeben werden.
      (Um den genauen Text der Lizenz lesen zu können bitte auf das Bild klicken)



      Wer an dieser Dll mitarbeiten will kann sich die Projektmappe hier runterladen.
      Bilder
      • MasterMindCloneLogicDll.png

        33,25 kB, 506×568, 176 mal angesehen
      Dateien

      Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „mikeb69“ ()

      Hi,
      hab mir das Klassendiageam angeschaut und mir ist aufgefallen das die Klasse "GameFinishedEventArgs" nur ein Feld hat.
      Wäre es nicht besser bei EventArgs mit nur einem Feld auf die "normalen" EventArgs zurück zugreifen und keine Extra Ableitung der Klasse durchzuüfhren, da du das eine Feld ja als "Sender" Parameter übergeben könntest.

      mfg
      Hallo mcdt,

      nein - der Meinung bin ich nicht
      Sender ist immer Me.

      Verwende ich im 2.Parameter die Basisklasse EventArgs wird nur eine leere Hülle übergeben.

      Ich jedoch möchte den Status an die Form weiterreichen.
      Die EventArgs-Klasse sieht in diesem Fall so aus.

      VB.NET-Quellcode

      1. Public Class GameFinishedEventArgs
      2. Inherits EventArgs
      3. Public Enum Status
      4. None = 0
      5. Won = 1
      6. Lost = 2
      7. End Enum
      8. Public GameFinishedStatus As Status
      9. Public Sub New(GameFinishedStatus As Status)
      10. Me.GameFinishedStatus = GameFinishedStatus
      11. End Sub
      12. End Class


      Geworfen wird das Event dann so (Beispiel)

      VB.NET-Quellcode

      1. RaiseEvent GameFinished(Me, New GameFinishedEventArgs(GameFinishedEventArgs.Status.Lost))


      Gruss

      mikeb69

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