AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Spiel] JewelCrack 1.3
Thema durchsuchen
Ansicht
Themen-Optionen

[Spiel] JewelCrack 1.3

Ein Thema von Romi · begonnen am 26. Dez 2008 · letzter Beitrag vom 8. Jan 2009
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Romi
Registriert seit: 25. Apr 2007
Hi,

JewelCrack ist ein Spiel, bei dem es darum geht, möglichst viele Steine gleicher Farbe auf einmal platzen zu lassen.

http://www.imgwelt.de/thumbs/GKJ8BM63KO4.jpg


Das Spielprinzip ist recht einfach und sollte selbsterklärend sein, dennoch eine kurze Anleitung:
Beim ersten Klick auf einen Stein wird dieser "markiert" und die Punkte, die man bekommt wenn man ihn platzen ließe, werden Links im Menü angezeigt. Beim zweiten Klick platzt dieser dann und man bekommt die Punkte gutgeschrieben. Das Spiel ist vorbei, wenn es keine Steine mehr gibt, die man Platzen lassen kann (also keine, die einen gleichfarbigen Nachbar haben).

Die Highscoreliste wird in der Registry gespeichert, unter "HKEY_CURRENT_USER\Software\JewelCrack". Wenn ihr sie entfernen wollt, einfach den Ordner rauslöschen. Achtung: Ab Version 1.3 stimmt dies nicht mehr, da wird die Score lokal im JewelCrack Ordner gespeichert. Die Software ist damit vollkommen portabel.

Kompiliert unter Vista64 und Delphi 2009 mit Andorra 4.5. Auch getestet unter Windows Vista 32bit.
Feedback wäre wirklich nett, besonders auch von XP- und 2000-Nutzern.

Bekannte Fehler:
- Keine!

Viel Spass,
Roman

EDIT: Version 1.1 ist raus
EDIT: Version 1.1.1 ist raus. Diese ist nur zum Testen!
EDIT: Version 1.2.
EDIT: Und Version 1.3. Das Spiel ist nun OpenSource. Lizenz: Mir egal. Nur mein Name muss dabei bleiben.
Angehängte Dateien
Dateityp: zip jewelcrack_1.3_bin_186.zip (512,4 KB, 119x aufgerufen)
Dateityp: zip jewelcrack_1.3_source_191.zip (151,9 KB, 22x aufgerufen)
 
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#11
  Alt 26. Dez 2008, 20:07
Hast du im Compiler vollständige Auswertung von boole'schen Ausdrücken aktiviert? Wenn ja, deaktivier sie mal. Denn wenn der Ausdruck komplett ausgewertet wird, wird auch auf Steine[i] zugegriffen, wenn es nil ist. Oder änderst du vielleicht irgendwann die Größe von Steine? Dafür kannste dir ja mal nen konditionalen Breakpoint reinsetzen mit der Bedingung i>=400.
Manuel Eberl
  Mit Zitat antworten Zitat
Romi
 
#12
  Alt 26. Dez 2008, 20:12
Zitat von 3_of_8:
Hast du im Compiler vollständige Auswertung von boole'schen Ausdrücken aktiviert? Wenn ja, deaktivier sie mal. Denn wenn der Ausdruck komplett ausgewertet wird, wird auch auf Steine[i] zugegriffen, wenn es nil ist. Oder änderst du vielleicht irgendwann die Größe von Steine? Dafür kannste dir ja mal nen konditionalen Breakpoint reinsetzen mit der Bedingung i>=400.
Also, "Vollständige Boolesche Auswertung" ist in den Projektoptionen deaktiviert. Und die Länge des Arrays taste ich nie an, sie ist von Anfang an fest auf [1..400] festgesetzt. Tortzdem Danke für deine Antwort!
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#13
  Alt 26. Dez 2008, 20:24
Hi,

ich habe Dein Spiel mal getestet. Die Umsetzung ist gut gemacht. Es ist ein echter Pausenfüller. Aber desto trotz habe ich doch einige Kritikpunkte :

Ich würde mir eine Rückgängigfunktion wünschen, für den Fall, dass ich mal den falschen Block angeklickt habe.
Überlege Dir nochmals die Punktevergabe. Ich hatte auf einmal bei "Punkte der markierten Steine" einen negativen Stand, der sich in einen positiven Punktestand wandelte, wie ich die Steine weggenommen habe. (Screenshot 1 & 2 & 3)
In der Highscoreliste wird der Punktestand negativ und abgeschnitten angezeigt.
Miniaturansicht angehängter Grafiken
zwischenablage03_275.jpg   zwischenablage02_101.jpg   zwischenablage01_213.jpg  
Rolf Warnecke
  Mit Zitat antworten Zitat
Benutzerbild von Mikescher
Mikescher

 
Delphi 2009 Professional
 
#14
  Alt 26. Dez 2008, 20:31
Ich finds ein witziges Spiel (könnten zwar noch ein paar lustige Sounds rein) aber sonst klasse

Aber das Spiel haste doch mit Andorra2D gemacht, oder ? Dann könntest du auch irgendwo ein Hinweis rein machen (irgendwie so powered by Andorra 2D oder so)

MfG Mikescher
Mike
  Mit Zitat antworten Zitat
Romi
 
#15
  Alt 26. Dez 2008, 20:45
Zitat von RWarnecke:
Ich würde mir eine Rückgängigfunktion wünschen, für den Fall, dass ich mal den falschen Block angeklickt habe.
Ja, wird gemacht.

Zitat von RWarnecke:
Überlege Dir nochmals die Punktevergabe. Ich hatte auf einmal bei "Punkte der markierten Steine" einen negativen Stand, der sich in einen positiven Punktestand wandelte, wie ich die Steine weggenommen habe. (Screenshot 1 & 2 & 3)
In der Highscoreliste wird der Punktestand negativ und abgeschnitten angezeigt.
In der neusten Version (1.1), die ich gerade hochgeladen habe, sollte das nicht mehr passieren. Hast du noch die alte Version? Die Punkteberechnung habe ich da neu gemacht. Die Highscore muss allerdings manuell zurückgesetzt werden.

Zitat:
Aber das Spiel haste doch mit Andorra2D gemacht, oder ? Dann könntest du auch irgendwo ein Hinweis rein machen (irgendwie so powered by Andorra 2D oder so)
Ja. Da habe ich gerade auch drüber nachgedacht, das wird noch gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#16
  Alt 26. Dez 2008, 20:56
Jetzt bekomme ich bei der Version 1.1 die folgende Meldung nach einem Spiel :

---------------------------
JewelCrack
---------------------------
Zugriffsverletzung bei Adresse 004A6535 in Modul 'Jewelcrack.exe'. Lesen von Adresse 0000003C.
---------------------------
OK
---------------------------
Rolf Warnecke
  Mit Zitat antworten Zitat
Romi
 
#17
  Alt 26. Dez 2008, 21:47
Ja, das ist der zweite Bug, der bekannt ist

Im Thread habe ich schon dargelegt, das ich momentan keine Ahnung habe, woher diese Meldung kommt. Ich muss mir das morgen noch einmal genauer ansehen.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#18
  Alt 26. Dez 2008, 22:03
Ich benutze für solche Fehlermeldungen Eurekalog. Eurekalog zeigt Dir dann genau an, in welcher Zeile und Procedure der Fehler auftritt.
Rolf Warnecke
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#19
  Alt 26. Dez 2008, 22:05
Hi Romi,

da ich leider nur drauf los geklickt habe wurde das natürlich nicht so viel. Aber zu der Punkteberechnung: Zum einen könntest du einen Cardinal verwenden. Der ist nochmal ein stückchen größer. Und dann muss ja nur folgendes gelten: Bei 400 Steinen dürfen die Punkte nicht größer als 2^32 - 1 sein.
Wie wäre es mit sowas? Um das größmögliche a herauszufinden einfach nach a auflösen und für x die maximale Anzahl Steine (sind es 400 ?) einsetzen:
Code:
f(x) = x^a
f_max(x) = 2^32 - 1 = x^a | log
log(x)(2^32 - 1) = a | x := 400
a = 3,7021
Das heißt für a = 3 wird der Spieler am stärksten für große Cluster belohnt ohne das es zu einem Überlauf kommt.

Und zu deinen Fehler:
  1. Fast jede Liste bis auf die der strings beginnt bei 0 und endet bei Anzahl - 1
  2. SInd denn auch wirklich 401 Sprites vorhanden? Statt einfach bis 400 zu gehen würde ich bis zur der Anzahl der Sprites (Steine.Items.Count) gehen
Vielleicht behebt das deine Fehler?

Wozu das Programm kaufen, wenn man auch debuggen kann Außerdem gibt es madExcept, welches zumindest für nc kostenlos ist.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Romi
 
#20
  Alt 26. Dez 2008, 22:24
Zitat von RWarnecke:
Ich benutze für solche Fehlermeldungen Eurekalog. Eurekalog zeigt Dir dann genau an, in welcher Zeile und Procedure der Fehler auftritt.
Ich kenne die Stelle, an der der Fehler auftritt bereits

Zitat:
1. Fast jede Liste bis auf die der strings beginnt bei 0 und endet bei Anzahl - 1
2. SInd denn auch wirklich 401 Sprites vorhanden? Statt einfach bis 400 zu gehen würde ich bis zur der Anzahl der Sprites (Steine.Items.Count) gehen
Die Steine liegen in einem Array[1..400] of tStein, und der ist auch ganz sicher bis oben hin voll

Und mit der aktuellen Punkteberechnung (in der neuen Version!) bin ich eigentlich ganz zu frieden. Aber danke für den Tip
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 20:20 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