![]() |
15-Puzzle
Liste der Anhänge anzeigen (Anzahl: 2)
Tag Leute!
Vor kurzem entdeckte ich per Zufall eine Version von diesem recht bekannten Schiebepuzzle "15-Puzzle" auf meiner Spielekonsole. Das besondere an dieser Version ist, dass man das Puzzle nicht mit einem Cursor löst, sondern ausschließlich mit Pfeiltasten. Das erlaubt dem Spieler die Teile schneller hin und her zu bewegen als mit 'nem Cursor. Nach langer Suche im Internet fand ich nichts vergleichbares für den PC, weshalb ich mich dazu entschlossen hab meine eigene Version zu programmieren. Diese Version lässt sich mit den Pfeiltasten als auch mit der Maus lösen. Ich wäre sehr denkbar über Kritik, Anregungen oder Lob über das Programm als auch über den Quelltext. Viel Spaß und freundliche Grüße, False Pretense! P.S: Mein derzeitiger Rekord liegt bei 15 Sekunden mit meiner Version. Wer knackt ihn? =D |
Re: 15-Puzzle
Macht n super Eindruck. :thumb: Aber zum Lösen fehlt mir die Geduld. :mrgreen:
|
Re: 15-Puzzle
Du hast 260millisekunden pro Zug geschafft!? Und nebenbei noch den aktuellen Zustand des Brettes erfasst? My lovely mister singing club :shock: Ich werd wohl doch alt.
|
Re: 15-Puzzle
Jo, wird wohl 'n Fehler in der Zeitnahme sein.
PS.: Falsche Sparte, Freeware <> OpenSource // Edit: Man muss lesen können |
Re: 15-Puzzle
Zitat:
|
Re: 15-Puzzle
Hi!
Zitat:
Oder übersehe ich was? Grüße, Frederic |
Re: 15-Puzzle
Zitat:
|
Re: 15-Puzzle
Die Pfeiltastensteuerung macht mich kirre... Kann man sie vielleicht optional vertauschen/spiegeln? Mein krankes Hirn möchte nämlich den weissen Kasten bewegen und nicht die benachbarten Kästchen in den weissen Kasten hinein.
Ausserdem fänd ich es nett wenn das Bitmap in die exe kompiliert würde. Für custom-zwecke (falls das deine Absicht war) könntest du ein alternatives Bitmap per Menü laden. Ansonsten muss ich sagen, eine schicke App... Toni |
Re: 15-Puzzle
Viele Spiele nehmen die F2 als Start
und ich würde bei Pause die Zahle verstecken ... so könnte man sonst seht leichtr cheaten. S P *gucken* S Pfeil P *gucken* S Pfeil P *gucken* ....... Eine Option zum verauchen der Pfeiltasten wäre wirklich toll, aber es war dennoch schön, daß man auch die Maus nutzen kann :thumb: |
Re: 15-Puzzle
Oder am einfach mal denken lassen, damit die Pausetaste nicht überlasted wird.
Ich mach es so: ![]() :P |
Re: 15-Puzzle
Die ganz einfachen Spielchen sind doch immer noch die schönsten...
Zitat:
|
Re: 15-Puzzle
Du bringst mich auf eine Idee wie ich meinen tristen Büroalltag aufwerten könnte... :gruebel:
*zündel* |
Re: 15-Puzzle
verTauSchen :oops:
und das mit der Maus geht ja schon :) |
Re: 15-Puzzle
Hallo,
nettes Spiel, aber die Zeilen 87 und 88 sind problematisch:
Delphi-Quellcode:
Es geht zwar an sich, aber statt TButton solltest du TImage nehmen.
TButton(findcomponent('piece_' + IntToStr(field[x, y]))).Left := (x - 1) * 50;
TButton(findcomponent('piece_' + IntToStr(field[x, y]))).Top := (y - 1) * 50; Und was hälst du davon dir eine TImage Nachfahrenklasse zu erstellen, die Zum Beispiel die X/Y Pos speichert?
Delphi-Quellcode:
Außerdem könntest du da dann auch "ihren" Wert speichern.
TSwapImage = class(TImage)
public property X : Integer read GetX write SetX property Y : Integer read GetY write SetY end; procedure TSwapImage.SetX(Value : Integer) begin // "Verbesserte" Variante... Die verhindert eine falsche Eingabe. Ansonsten kannst du natürlich auf Min/Max verzichten Left := Max(Min(Value, 4), 0) * 50; end; Und vielleicht solltest du verhindern "FindComponent" zu verwenden und stattdessen vielleicht die T(Swap)Image-Objekte in einer TObjectList zu speichern? Außerdem sollte man mit einem Klick alle entsprechend verschieben... Also wenn wir in der Reihe haben: 2304 Das man auf die 2 Klickt und er dann hat: 0234 MfG xZise |
Re: 15-Puzzle
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hab das Spielchen auch mal getestet und einen kleinen Bug gefunden. 1. Wenn die Pause aktiviert ist, lassen sich die Kästchen mit den Pfeiltasten trotzdem verschieben. So kann man einen neuen Rekord von 0 Sekunden aufstellen. 2. Wenn die Pause aktiviert ist, sollte sich das Programm die Zeit merken und nicht immer wieder bei 0 anfangen die Sekunden zu zählen. Auch dies ermöglicht einen rekord von 0 sekunden. PS: Ich hab mal einen neuen Rekord im Screenshot gemacht. :-) 6 Sekunden, Neuer Rekord!!! |
Re: 15-Puzzle
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bins nochmal. Ich wollte gerade nochmal ohne Pause spielen um zu schauen wie schnell ich bin. Also auf richtiger weise. jetzt ist mir aufgefallen, dass der Zug zähler wohl auch net richtig funzt. Hatte das wärend des Spielens nicht angeschaut. viel mir nur zum schluss auf, deshalb kann ich den fehler nicht wirklich lokalisieren. aber ich haben 100pro mehr als 3 züge benötigt. edit: aber sonst eine tolle pausen beschäftigung. echt tolle idee mit den pfeiltasten. mfg christian18 |
Re: 15-Puzzle
Ich bin zu dumm für dieses Spiel.
Ich will immer das weisse Quadrat noch oben schieben, dabei gehts dann nach unten wenn ich nach oben drück. Ne Einstellung um die Tasten invertiert nutzen zu können wäre Klasse :D Edit: trotzdem geschafft :D --------------------------- Information --------------------------- Gelöst! Benötigte Zeit: 160 Sekunden Benötigte Züge: 112 --------------------------- OK --------------------------- Ne Onlinehighscore wäre nicht schlecht :D |
Re: 15-Puzzle
Zitat:
Achwas, das kriegst du schon noch hin! Wenn man das erstmal gelöst hat, weiß man, dass sich die Geduld gelohnt hat! *gg* Zitat:
@: Tonic1024 und Angel4585 und himitsu: Alles klar, die Tastenvertauschtopion werde ich für euch einbauen! :) Zitat:
@Christian18: Danke für die Bugreports. Ich werde die Bugs natürlich gleich mal fixen :D btw: 49 Sekunden sind doch schon echt gut ^^ @ xZise: Oh, ok, das TButton bei findcomponent hab ich wohl vergessen zu ändern, denn vor den Images hab ich alles mit Buttons gemacht. Danke für den Hinweis. Das mit der TImage Nachfahrenklasse werde ich mir überlegen, an sich ist die Idee echt gut. Dass man mit einem Klick alle nachfolgenden Teile verschieben kann, hab ich mir auch schon überlegt. Kommt auf jedenfall noch rein :D |
Re: 15-Puzzle
Hallo,
tolles Spiel, ich bin schon sehr lange Fan. Um so mehr hab ich mich gefreut, daß es auch endlich mal ne Delphi-Version davon gibt - und dazu macht Sie auch noch nen guten Eindruck. Klasse ! Das einzige, was ich noch beheben würde, sind die Speicher-Leaks. Schreib doch einfach mal
Delphi-Quellcode:
ins OnDestroy-Ereignis Deiner Main-Form ;-)
pic_field.Free;
pieces.Free; Gruß Micha |
Re: 15-Puzzle
- cool! :thumb:
Wie hast du so ein cooles Design hinbekommen? |
Re: 15-Puzzle
Zuerst mal ein dickes Lob^^ Das Spiel ist echt der "Minutentotschlager" wenn man z.B. gleich los muss, aber noch n paar Minuten Zeit hat und nicht weiß was man derzeit tun soll^^
Könntest du mal ein Video machen, wie du das Puzzle löst? würde mich schonmal interessieren, wie schnell du bist^^. Immo bin ich immer bei 200-300 Sekunden. Den Vorschlag, einen Online-Highcore einzurichten würde ich auch begrüßen :). Gibt es eigntl iwelche Tricks, um am schnellsten zum Ziel zu gelangen? So in der Art geheime Kombos oder so :D |
Re: 15-Puzzle
Nachdem ich die Pfeiltasten vertauscht hab (Pfeilrichtung = Bewegungsrichtung des Freifeldes),
hab ich grad mal 118s benötigt, aber ich hab mich unten auch etwas verlaufen/verschoben, als ich wo ich dann nur noch eine Zahl verschieben mußte :oops:
Code:
1 2 3 4
5 6 7 8 9 10 11 12 14 15 [color=#ff0000]13[/color] |
Re: 15-Puzzle
Liste der Anhänge anzeigen (Anzahl: 1)
Hab den Rekord gebrochen. 5 Sekunden !!! Kein Witz. War bisher immer so bei 20 Sekunden.
Muß allerdings zugeben, daß die 1. und 2.Zeile nach dem Start schon fertig sortiert waren. Zufall sei Dank :-) Gruß Micha |
Re: 15-Puzzle
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
@False Pretense : schöne Spielerei (für die kleine Pause zwischendurch ...) falls Du ein paar andere fields gebrauchen kannst, hab' welche in den Anhang gepackt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz