AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

15-Puzzle

Ein Thema von False Pretense · begonnen am 8. Sep 2009 · letzter Beitrag vom 7. Jan 2010
Antwort Antwort
Seite 2 von 3     12 3      
False Pretense
Registriert seit: 22. Aug 2008
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
Miniaturansicht angehängter Grafiken
screenshot_143.png  
Angehängte Dateien
Dateityp: zip 15_puzzle_163.zip (254,8 KB, 114x aufgerufen)
 
Satty67

 
Delphi 2007 Professional
 
#11
  Alt 8. Sep 2009, 10:11
Die ganz einfachen Spielchen sind doch immer noch die schönsten...

Zitat von himitsu:
Eine Option zum verauchen der Pfeiltasten wäre wirklich toll,
aber es war dennoch schön, daß man auch die Maus nutzen kann
Glaube nicht, dass das Rauchen der Pfeiltasten wirklich den Kick bringt. Aber wenn die weggeraucht sind, sollte wirklich eine Mouse-Steuerung da sein.
  Mit Zitat antworten Zitat
Medium

 
Delphi 2007 Enterprise
 
#12
  Alt 8. Sep 2009, 10:14
Du bringst mich auf eine Idee wie ich meinen tristen Büroalltag aufwerten könnte...

*zündel*
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#13
  Alt 8. Sep 2009, 10:34
verTauSchen

und das mit der Maus geht ja schon
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#14
  Alt 8. Sep 2009, 11:30
Hallo,
nettes Spiel, aber die Zeilen 87 und 88 sind problematisch:
Delphi-Quellcode:
TButton(findcomponent('piece_' + IntToStr(field[x, y]))).Left := (x - 1) * 50;
TButton(findcomponent('piece_' + IntToStr(field[x, y]))).Top := (y - 1) * 50;
Es geht zwar an sich, aber statt TButton solltest du TImage nehmen.

Und was hälst du davon dir eine TImage Nachfahrenklasse zu erstellen, die Zum Beispiel die X/Y Pos speichert?
Delphi-Quellcode:
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;
Außerdem könntest du da dann auch "ihren" Wert speichern.

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
Fabian
  Mit Zitat antworten Zitat
Christian18
 
#15
  Alt 8. Sep 2009, 11:42
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!!!
Miniaturansicht angehängter Grafiken
unbenannt_846.jpg  
  Mit Zitat antworten Zitat
Christian18
 
#16
  Alt 8. Sep 2009, 12:06
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
Miniaturansicht angehängter Grafiken
unbenannt_323.jpg  
  Mit Zitat antworten Zitat
Angel4585

 
Delphi 2010 Professional
 
#17
  Alt 8. Sep 2009, 12:23
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

Edit:
trotzdem geschafft

---------------------------
Information
---------------------------
Gelöst!

Benötigte Zeit: 160 Sekunden
Benötigte Züge: 112
---------------------------
OK
---------------------------


Ne Onlinehighscore wäre nicht schlecht
Martin Weber
  Mit Zitat antworten Zitat
False Pretense
 
#18
  Alt 8. Sep 2009, 14:39
Zitat von Daniel G:
Macht n super Eindruck. Thumbs up! Aber zum Lösen fehlt mir die Geduld. Mr. Green
Danke!
Achwas, das kriegst du schon noch hin! Wenn man das erstmal gelöst hat, weiß man, dass sich die Geduld gelohnt hat! *gg*


Zitat von Medium:
Du hast 260millisekunden pro Zug geschafft!? Und nebenbei noch den aktuellen Zustand des Brettes erfasst? My lovely mister singing club Ich werd wohl doch alt.
Von den 58 Zügen hab ich mir natürlich nicht jeden angeschaut. Meistens löse ich das so, dass ich ein 2x2 Viereck mit dem weißen Feld im Auge behalte und die Teile durch schnelles Drücken von z.B. Links + oben rotieren lasse. Aber die Zeit müsste so hinkommen, auf meiner Spielekonsole schaffe ich auch immer um die 15 Sekunden. Ein Fehler in der Zeitnahme ist es meiner Meinung nach eher nicht.

@: Tonic1024 und Angel4585 und himitsu:
Alles klar, die Tastenvertauschtopion werde ich für euch einbauen!


Zitat von Tonic1024:
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.
mh..., eine gute Idee. Ich werd's mir überlegen. Danke

@Christian18:
Danke für die Bugreports. Ich werde die Bugs natürlich gleich mal fixen
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
  Mit Zitat antworten Zitat
Benutzerbild von DerAndereMicha
DerAndereMicha

 
Delphi 2007 Enterprise
 
#19
  Alt 22. Dez 2009, 08:21
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:
 pic_field.Free;
 pieces.Free;
ins OnDestroy-Ereignis Deiner Main-Form

Gruß
Micha
  Mit Zitat antworten Zitat
kingsusu

 
RAD-Studio 2009 Pro
 
#20
  Alt 27. Dez 2009, 23:14
- cool!

Wie hast du so ein cooles Design hinbekommen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz