Jigsaw (Neue Version 1.04 (Fehlerbereinigung), 13.12.2011)

    • Release

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

      Aha, eigentlich sollte beim Start ein 3x3-Raster eingestellt sein und damit auch eine Puzzlegröße von 166 Pixel. Wie genau die 169 jetzt bei dir zustande kommen, ist mir da etwas rätselhaft, könntest du mal die frmMain_Load damit ersetzen:

      VB.NET-Quellcode

      1. Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. Randomize()
      3. Me.BackgroundImage = My.Resources.back
      4. iDifficulty = 0
      5. iGridSize = 3
      6. iBackSize = funcGetBackSize()
      7. picBack.Width = iBackSize 'neu
      8. picBack.Height = iBackSize 'neu
      9. iCurJigSize = funcGetJigSize()
      10. subSetDifficulty()
      11. subResetJigs()
      12. picBack.Image = My.Resources.JigPic
      13. ctlJigsaw = New Bitmap(picBack.Image)
      14. subSetJigs()
      15. End Sub


      Wie gesagt, bei mir tritt der Fehler nicht auf, weder auf 32 noch auf 64 Bit.


      Der Doc!
      dein neues frmLoad-Event hat das Problem auf meinem System nicht behoben.

      Im Anhang ein Screen vom Debugging, dem du Dimensionen und Werte der gewünschten Variablen entnehmen kannst.
      Bilder
      • Dimension und Wert.png

        17,55 kB, 472×222, 120 mal angesehen
      wär schon ok. bist du heute abend da? ich mach gleich noch ne tour in die schöne hauptstadt und komme vorraussichtlich gegen 22-23h wieder und wäre noch für ~1h on. mein skype is fufu8b cya...
      So, mit tatkräftiger Hilfe von FuFu^^ hab ich den Fehler lokalisiert. Schuld war meine optische Minimalkonfiguration von Windows, ich hab übersehen, dass unterschiedliche Styles auch unterschiedliche Formgrößen (Rahmen) bedingen. Hab den Fehler behoben, Links zur korrigierten Version und zum korrigierten Quellcode (für die neugierigen) befinden sich im ersten Post.


      Der Doc!
      Sieht ganz gut aus, nur einen "Fehler" habe ich gefunden. Wenn man das Programm größer zieht kann es größer wie der sichtbare Bereich des Bildschirms werden, vielleicht sollte das noch verändert werden. Ansonsten tut das Programm was es soll und das gut. Allerdings habe ich es nicht einmal auf 3x3 geschafft^^
      Danke für den Hinweis, hab nun eine Minimal- und Maximalgröße eingebaut.

      Die Minimalgröße ist notwendig, damit die Menüs auch alle angezeigt werden. Ich hab sie auf 450 Pixel festgelegt, da ja der Sourcecode verfügbar ist, kann sich hier jeder spielen, wie er will.

      Die Maximalgröße richtet sich nach der Bildschirmauflösung, hier wird der geringere Wert gewählt (meist die horizontale Auflösung). Das Fenster selbst bleibt dabei aber (fast) quadratisch, wenn man einen Teil größer zieht, passt es sich automatisch auf die maximale Auflösung an.

      Der Download und der Sourcecode sind wie immer im ersten Post verfügbar.


      Der Doc!
      Hallo Dr.Snoog,

      hab mir erlaubt dein Programm unter Linux zu testen.
      Sieht gut aus.
      Einzig das Menü ist nicht wirklich sichtbar - dies wird es erst wenn ich mit der Maus darüberfahre.

      Getestet unter openSuse 11.3

      Screenshot im Anhang

      EDIT:
      Doch noch ein Problem gefunden.
      Wechsele ich die Anzahl der Puzzleteile z.B. 5x5 gibt es eine "ArgumentException"

      in <filename unknown>; 0

      Hier stellt sich scheinbar die Frage wie du den Pfad zusammenbaust !

      Gruss

      mikeb69
      Bilder
      • Linux test - Jigsaw.png

        547,27 kB, 921×752, 87 mal angesehen
      • Linux test - Jigsaw - Failed.png

        166,63 kB, 896×747, 88 mal angesehen

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

      Hallo!

      Eigentlich verwende ich nur ganz normale Komponenten, eventuell fehlt es da nur an der Farbe (versuch mal, die Schriftfarbe zu ändern).

      Betr des Fehlers, eigentlich liegt das Bild in einem Bitmap-Element, die integrierten lade ich aus Ressourcen, die externen ja per CommonDialog. Da ist eigentlich nichts mit selbst zusammengestoppelten Pfaden, warum hier eine Exception auftritt, ist mir momentan rätselhaft. Mangels Linux-Installation (aus Platzgründen) kann ich es auch nicht testen, da ja der Quellcode verfügbar ist, kannst du ja selbst testen.


      Der Doc!
      Hallo DrSnoog,

      hab nicht gesehen, das du den Quellcode anbietest.
      Auch beim Debuggen unter Win 7 wird eine Exception geworfen, sobald ich die Spielfeldgröße ändern will.

      Und zwar hier

      VB.NET-Quellcode

      1. Public Sub subSetJigs()
      2. ....
      3. ctlImage.Image = ctlSizedPic.Clone(New Rectangle(cns * iCurJigSize, cnt * iCurJigSize, iCurJigSize, iCurJigSize), ctlJigsaw.PixelFormat)
      4. ....

      Unter Win 7 bekomm ich eine OutOfMemory Exception

      Gruss

      mikeb69
      @mikeb69: Bitte, DrSoong, nicht DrSnoog.

      Der Fehler (Exception) tritt nur dann auf, wenn man den Schwierigkeitsgrad ändert und vorher noch kein Shuffle durchgeführt hat. Ich werd mir das im Laufe des Tages mal genau ansehen und den Code korrigieren, kommt dann wie üblich in den ersten Post. Danke aber für den Hinweis, ich hoffe, dass dann nicht noch mehr solche Fehler drinnen sind.


      Der Doc!
      Erstmal Danke an mikeb69, hab noch einige andere Sachen gefunden.

      Version 1.04 (wie immer im ersten Post zu finden) hat einige Fehlerbereinigungen, die Abstürze in Verbindung mit der Änderung des Schwierigkeitsgrades beheben, außerdem wurde das Speichermanagement verbessert.

      Für die chronisch Neugierigen hab ich den kompletten Sourcecode auskommentiert, das Verfolgen der Gedankengänge bzw. eigene Änderungen sollten damit keinerlei Probleme darstellen.


      Der Doc!
      Hallo DrSoong,

      (diesesmal richtig geschrieben)
      hab dein Spiel nochmals unter Linux getestet und ..... es läuft.
      Das mit den Farben im Menü ist der einzige Mangel den ich finden konnte. ;)

      Getestet unter openSuse 11.3

      Screenshot im Anhang

      Gruss

      mikeb69
      Bilder
      • Linux test - Jigsaw.png

        836,25 kB, 797×749, 77 mal angesehen
      Da sind nicht die Farben der Mangel (Schriftfarbe ist standardmäßig weiß) sondern der Umstand, dass das Menü unter Linux scheinbar keinen Transparenten Hintergrund kennt. Normalerweise ist der Hintergrund des Menü transparent und der Formhintergrund (die Holzoptik) kommt durch. Auf der ist Weiß die bessere Schriftfarbe, bei einem grauen Hintergrund sieht es natürlich anders aus.

      Nachdem der Quelltext dabei ist, kannst du dir ja eine andere Schriftfarbe als Standard einstellen und dir eine Linux-Version kompilieren, warum die Transparenz nicht funktioniert, kann ich leider nicht sagen. Ich werd mir da noch was überlegen, was man eventuell noch machen könnte.


      Der Doc!
      Hallo DrSoong,

      ich werd mir sicher keine Linux Version kompilieren.
      Finde es nur interessant, einzelne hier vorgestellte Projekte unter Linux laufen zu lassen.

      Läuft das Programm, zeigt es das der Programmierer sich an einfache Regeln der dotNet Programmierung hält.
      Der ein oder andere nimmt das dann in seine kompatibilitäts Liste auf.

      Das ist alles.

      Ob Linux oder nicht - tolles einfaches Programm. :thumbup:

      Gruss

      mikeb69