Jigsaw (Neue Version 1.04 (Fehlerbereinigung), 13.12.2011)

    • Release

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

      Jigsaw (Neue Version 1.04 (Fehlerbereinigung), 13.12.2011)

      Jigsaw 1.04

      Jigsaw ist ein Schiebepuzzle, jedes Bild besteht aus mehreren Teilen, die sich verschieben lassen. Dabei können nur jene Teile verschoben werden, die sich direkt horizontal oder vertikal neben dem leeren Feld befinden. Wenn man alle Teile in die richtige Position gebracht hat, wird das ganze Bild angezeigt.

      Man kann eigene Bilder für das Puzzle verwenden. Neue Bilder werden dabei über Datei - Bild laden in das Spiel geladen. Das Puzzle selbst ist immer Quadratisch, geladene Bilder werden darauf angepasst.

      Die Teile können mit der Maus oder mit den Pfeiltasten der Tastatur verschoben werden.

      Nachdem ich jetzt mal alles eingebaut habe, was mir an Features eingefallen ist und das ganze auch stabil läuft, hab ich mich entschlossen, die Version auf 1.0 zu setzen.

      Getestet auf Win 7 32 Bit.

      Features:
      - Mehrere Schwierigkeitsstufen (3x3 bis 6x6)
      - Zeitmessung für das Puzzle
      - Pausefunktion (einfach auf die Zeit rechts klicken, ein nochmaliger Klick beendet die Pause)
      - Hintergründe anpassbar (6 Farben, eigene Bilder), Textfarbe der Menüs wählbar (6 Farben)
      - Maus- und Tastensteuerung
      - Indizes der Puzzleteile werden auf Tastendruck (STRG-Taste) angezeigt.
      - Fenster ist in seiner Größe änderbar, Puzzle ändert Größe mit (bleibt aber quadratisch)

      ToDo:
      - was noch?

      Programmiersprache:
      - Visual Basic 2008

      Systemanforderungen:
      - .NET Framework 2.0 oder höher
      - Maus oder Tastatur

      Screenshot:
      Im Anhang

      Download:
      Hier

      Größe (gepackt): 1.29 MB (1.360.698 Bytes), MD5: 0CCB5213DFDEBD6FC75C73468D71E922
      Größe (entpackt): 1.36 MB (1.436.160 Bytes), MD5: 64ADCC420C95C179E60799995A4F93B7

      Ich hab noch ein paar Bilder in ein separates ZIP-File gepackt, insgesamt sind das 9 Bilder mit einer Gesamtgröße von 5.37 MB. Die Bilder findet ihr hier.

      Fehler und Ideen bitte hier melden.

      EDIT 13.12.2011: Fehlerbereinigung, das Spiel war bei Auswahl einer anderen Schwierigkeit abgestürzt. Außerdem hab ich das Speichermanagement verbessert, nun sollte der Speicherverbrauch nicht mehr in lichte Höhen schießen. Wie immer können die Neugierigen den Sourcecode hier runterladen. Der Quellcode ist nun durchgängig kommentiert, damit meine Gedankengänge etwas leichter zu verstehen sind.


      Der Doc!
      Bilder
      • jigsaw.jpg

        131,52 kB, 529×563, 607 mal angesehen
      Dateien
      • jigsaw.zip

        (1,36 MB, 382 mal heruntergeladen, zuletzt: )
      • jigsaw_source.zip

        (1,39 MB, 335 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „DrSoong“ () aus folgendem Grund: Neue Version 1.04, Fehlerbereinigung

      Macht was es machen soll :D

      Häte da ein paar Vorschläge was du noch hinzufügen/verbessern könntest:

      + Schwierigkeitsgrad wählbar machen (4 * 4, 5 * 5, 6 * 6 Felder) 'bin für 5 * 5 zu blöd ^^ für mich wäre 3 * 3 gut ^^
      + 2 oder 3 wählbare Designs (für die welche den Holzton nicht mögen)
      + Mit einer Funktion/Option die einem auf Zeit spielen lässt
      + Steuerung mit Maus oder Pfeiltasten

      * Das "gleiten" der Teile verbessern! (wenn ich gleite sieht das anders aus, das im Spiel ist ehr Teleportation) :D

      So das wars :)

      PS: Läuft auf Windows 7 64Bit 1A

      Edit: Hab die überschrift deiner Liste überlesen/falsch interpretiert, ist ja ToDo :rolleyes:

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

      Danke für deinen Input, hab mir das mal durchgelesen.

      + Schwierigkeitsgrad wählbar machen (4 * 4, 5 * 5, 6 * 6 Felder)
      Momentan war mal die Mechanik wichtig, 5 * 5 war von der Pixelzahl gewählt. Ich werd auf jeden Fall noch 4 * 4 und 6 * 6 einbauen, betr 3 * 3 bin ich mir nicht sicher.

      + 2 oder 3 wählbare Designs (für die welche den Holzton nicht mögen)
      Ein graphisch genialer Hintergrund oder? ;) Nein, im Ernst, hab nur was Kontrastreiches gebraucht, ich will da aber nicht zu viel an Graphik mitliefern, da das ganze sonst viel zu groß ist (ist es jetzt schon, da ich das Hintergrundbild und die integrierte Logo-Puzzlegraphik drin hab). Eine Auswahl von ein paar Farben als Hintergrund mit der Option, so wie beim Puzzle selbst eine Graphik als Hintergrund zu importieren, wären doch auch zielführend, oder?

      + Mit einer Funktion/Option die einem auf Zeit spielen lässt
      Momentan hab ich intern einen Zähler, der allerdings nur mit einer Meldung angezeigt wird, wenn das Puzzle gelöst wird. Die Timeridee find ich gut, ich werd die auf jeden Fall einbauen.
      Dazu muss ich aber sagen, dass ich Highscores bzw. einer Highscoreliste hier eher ablehnend entgegenstehe. Einerseits lässt sich so eine Liste lokal leicht manipulieren (OK, man könnte hier Verschlüsselung einsetzen), andererseits wird ein Puzzle beim Shuffle vollkommen willkürlich durcheinander gewürfelt, hier kann man meiner Meinung nach nicht einmal zwischen zwei Spieler bei der selben Person Vergleiche anstellen.

      + Steuerung mit Maus oder Pfeiltasten
      Pfeiltasten hab ich mal außen vor gelassen, da es mir erstmal nur um die Mechanik ging. Werd ich aber noch einbauen.

      Das mit dem "gleiten" hab ich ja als ToDo, war für die erste Version nicht auf der Prioritätenliste. Ich bin jetzt nicht so der auf die Optik fixierte (und spezialisierte), die von dir vorgeschlagenen Punkte haben da eher Vorrang. Ich werd aber, wenn das spielerische dann mal passt auch die Optik etwas aufpolieren.


      Der Doc!
      sieht gut aus, nur solltest du das Bild was man aussucht auf 500x500 strecken/verkleinern. Und wenn ich ein Bild hole was auch nur 1px zu klein ist kommt ein fehler das nicht genügend arbeitsspeicher zur Verfügung steht
      „Ex-ter-mi-nate all knock-knock jokes! They are an enemy of the daleks “ A Dalek
      Mein Blog zum Thema Klarträumen
      @Pascal: Danke, ich hab natürlich nicht daran gedacht, dass ich hier Vorkehrungen treffen muss. Der Punkt überschneidet sich aber mit dem von mcandy007.

      @mcandy007: Ich hab die Größe momentan mal festgesetzt, da ich so leichter rechnen konnte. Ich bin mir nicht sicher, wie ich den Spagat zwischen qualitativ wertigen Bildern (siehe das 1px-Problem) und variabler Größe lösen werde. Fest steht aber, dass ich bei quadratischen Bildern bleiben will. Ich denke mal, diese Einschränkung dürfte nicht allzu schlimm sein.


      Der Doc!

      DrSoong schrieb:

      quadratischen Bildern bleiben will

      Finde ich auch nicht besondern schlimm.

      Nutzt du eigentlich Pictureboxen oder GDI?

      Weil du könntest ja im Formscrollevent die Größe der einzelnen Bilder neu berechnen.

      Also man sollte die Formgröße auch nur so ändern können das diese Quadratisch bleibt.

      Berechnen lässt sich der Rest einfach!

      MFG
      also ich habe es runtergeladen, entpackt und gestartet, aber fehler

      er sagt mir ich habe zuwenig arbeitsspeicher
      In mein Lappi habe ich 4GB Ram normal sollte das reichen ^^
      OS: Windows 7 ultimate 64 bit


      Spoiler anzeigen
      Informationen über das Aufrufen von JIT-Debuggen
      anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

      ************** Ausnahmetext **************
      System.OutOfMemoryException: Nicht genügend Arbeitsspeicher.
      bei System.Drawing.Bitmap.Clone(Rectangle rect, PixelFormat format)
      bei Jigsaw.frmMain.subSetJigs()
      bei System.EventHandler.Invoke(Object sender, EventArgs e)
      bei System.Windows.Forms.Form.OnLoad(EventArgs e)
      bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
      bei System.Windows.Forms.Control.CreateControl()
      bei System.Windows.Forms.Control.WmShowWindow(Message& m)
      bei System.Windows.Forms.Control.WndProc(Message& m)
      bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
      bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


      ************** Geladene Assemblys **************
      mscorlib
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5446 (Win7SP1GDR.050727-5400).
      CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll.
      ----------------------------------------
      Jigsaw
      Assembly-Version: 1.0.0.0.
      Win32-Version: 1.0.0.0.
      CodeBase: file:///C:/Users/Sven/Desktop/jigsaw/Jigsaw.exe.
      ----------------------------------------
      Microsoft.VisualBasic
      Assembly-Version: 8.0.0.0.
      Win32-Version: 8.0.50727.5420 (Win7SP1.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
      ----------------------------------------
      System
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5442 (Win7SP1GDR.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
      ----------------------------------------
      System.Windows.Forms
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5446 (Win7SP1GDR.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
      ----------------------------------------
      System.Drawing
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
      ----------------------------------------
      System.Configuration
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
      ----------------------------------------
      System.Xml
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
      ----------------------------------------
      System.Runtime.Remoting
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
      ----------------------------------------
      System.Drawing.resources
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing.resources/2.0.0.0_de_b03f5f7f11d50a3a/System.Drawing.resources.dll.
      ----------------------------------------
      System.Windows.Forms.resources
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
      CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
      ----------------------------------------
      mscorlib.resources
      Assembly-Version: 2.0.0.0.
      Win32-Version: 2.0.50727.5446 (Win7SP1GDR.050727-5400).
      CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll.
      ----------------------------------------

      ************** JIT-Debuggen **************
      Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
      Konfigurationsdatei der Anwendung oder des Computers
      (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
      Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

      Zum Beispiel:

      <configuration>
      <system.windows.forms jitDebugging="true" />
      </configuration>

      Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
      Ausnahmen an den JIT-Debugger gesendet, der auf dem
      Computer registriert ist, und nicht in diesem Dialogfeld behandelt.




      MfG
      @Eistee: Komisch, die erste Version ist bei dir ja gelaufen. Hab das ganze auf win7 32 Bit geschrieben, werd mit das mal unter 64 Bit heute Abend ansehen. Mir ist da momentan schleierhaft, wo sich ein Fehler eingeschlichen haben könnte.


      Der Doc!
      super :thumbsup:
      wenn man einmal das system hat isses einfach aber ums zu finden hab ich fürs erste spiel 3:40 gebraucht xD

      die MemoryException kommt bei mir auch aber wenn ich auf weiter clicke startet und läuft das spiel ohne probleme ;)
      So, das ganze mal auf Win7 Ultimate 64 Bit laufen lassen, funktioniert ohne den geringsten Anflug von Memory Exception. Ich hab den Quelltext mal im ersten Post angehängt, wenn bei jemanden der Fehler auftritt, kann er das ganze in der IDE laufen lassen. Vielleicht kann dann der Fehler dort lokalisiert werden.


      Der Doc!
      Könntest du mir die Dimensionen für ctlJigsaw und den Wert von iCurJigSize zu diesem Zeitpunkt sagen (ctlJigsaw kannst du am einfachsten in der modBas auslesen, dort wird sie initialisiert).

      Bei mir läuft da alles problemlos, ich grüble wie ein Wahnsinniger, was das sein könnte.


      Der Doc!