Entwickler-Ecke

Freeware Projekte - Memory die erste


chriss1988 - Di 06.06.06 14:40
Titel: Memory die erste
hi @ all

Habe mal ein kleines Memory proggrammiert und wollte es euch mal vorlegen, damit ihr es testen könnt und mir verbesserungen erklären könnt. Das memory ist nicht grad die wucht , da ich noch ziemlich neu mit Delphi bin und deshalb noch den ein oder anderen Fehler darin vorkommen können. Daher bitte ich euch nicht ganz so streng mit eurer Bewertung zusein aber trotzdem Mämgel,Fehler oder kleine verbesserungen miteinbringt.


Narses - Di 06.06.06 15:11

Moin!

Hm... :| es funktioniert ja gar nicht; wenn ich Karten anklicke, liegt nix drunter... :gruebel:

Da du hier [http://www.delphi-library.de/topic_VCL+Memory+Tutorial++fuer+EinUmsteiger_44084.html] ausführlich erklärt kriegst, wie man ein Memory-Spiel programmiert, hätte ich jetzt mal mindestens diese Funktionalität erwartet. ;)

cu
Narses


chriss1988 - Di 06.06.06 15:12

du musst auf datei Starten.


Narses - Di 06.06.06 15:15

Moin!

Ich habe doch schon das Programm gestartet - muss ich noch mehr tun, um meinen Willen zu zeigen, dass ich jetzt Spielen möchte? Warum? Ist mir zu umständlich... ;)

cu
Narses

//EDIT: Hmm, mal noch ganz was anderes... hast du eigentlich mind. die (Veröffentlichungs-)Rechte an den Bildern, die du da munter verteilst... :?: ;)


chriss1988 - Di 06.06.06 15:20

ok hab ich geändert müsste gehn


azubi_20 - Di 06.06.06 15:27

Also ein paar Mängel :


Und hier ein paar Sachen, die du noch einbauen könntest :



EDIT : ist erledigt


chriss1988 - Di 06.06.06 15:46

user profile iconazubi_20 hat folgendes geschrieben:
Also ein paar Mängel :
[list][*]Im Menüpunkt "Hilfe?" haben alle Unterpunkte den Shortcut F1

geändert
Zitat:

[*]Wenn man einen dieser Unterpunkte öffnet, kommt ein kleines Fenster mit der Erklärung. Schließe ich es über [X] wird das Hauptprogramm beendet. (Lösung: blende das [X] aus)

ok hab ich

Zitat:

[*]Die Hilfefenster sind schlecht designed (Besser: formatierter Text (z.B. Html), Button "zurück" unten gut sichtbar)

hab die leiste weg gemacht und dafür einen schönen button
Wie kann ich den die farbe für bestimmte wörter ändern oder wörter unterstreichen


Zitat:

Und hier ein paar Sachen, die du noch einbauen könntest :
  • Eine Message, wenn man fertig ist mit dem Spiel, wäre schön.
  • Wie wäre es mit einer Highscoreliste ?



ok das mit ner showmessage kann ich versuchen ob ich das hinbekomm

das mit der highscore hab ich mir schon überlegt aber wie gesagt bin ein noob und weis net wie ich das machen soll (wahrscheinlich mit ner datenbank) oder? hab aber noch nie ne datenbank programmiert


JayEff - Di 06.06.06 15:53

Ich würds ohne DB machen ... Mach ne ini datei mit name=wert oder sowas. DBs sind mehr für viele Einträge gut, denk ich (täusch ich mich?) Ich mag keine DBs weil ich keine Ahnung davon hab ^^
Achja: Weee! 18Punkte! ...bin ich gut? 8(


azubi_20 - Di 06.06.06 16:01

user profile iconchriss1988 hat folgendes geschrieben:
user profile iconazubi_20 hat folgendes geschrieben:

[*]Wenn man einen dieser Unterpunkte öffnet, kommt ein kleines Fenster mit der Erklärung. Schließe ich es über [X] wird das Hauptprogramm beendet. (Lösung: blende das [X] aus)

ok hab ich

Das ist doch glatt gelogen :roll: :?
Mir ist noch aufgefallen, dass das Programm dann nicht wirklich beendet wird, also der Prozess noch läuft... :roll:
Lass deine Hauptanwendung doch stehen und rufe dein Hilfefenster mit showmodal() auf.


chriss1988 - Di 06.06.06 16:03

??
wenn ich die hilfe rufe und diese beende kommt bei mir wieder das spiel oder wie soll ich das bei dir verstehn???????????????

//edit:
ahso ok ich habs jetzt endlich auch verstanden wie du das gemeint hast das liegt wohl daran das ich form1.hide hab ich werd mich drum kümmern


chriss1988 - Di 06.06.06 16:08

hab das immoment so


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.NeueRunde1Click(Sender: TObject);
begin
form1.hide;
form2.showm
form2.memo1.Lines.Text:=('Nochmal Spielen ?                             '+

'Um das Spiel nochmal zuspielen musst du auf "Datei-->Neuer Versuch" .');

end;



nun mach ich das so

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.NeueRunde1Click(Sender: TObject);
begin

form2.showmodal;
form2.memo1.Lines.Text:=('Nochmal Spielen ?                             '+

'Um das Spiel nochmal zuspielen musst du auf "Datei-->Neuer Versuch" .');

end;


und er bringt mir ein leeres memo


azubi_20 - Di 06.06.06 16:12

Wenn ich bei der Hilfe oben rechts auf das Kreuz drücke [x], wird das Hilfe fenster beendet und das Programm kommt nich wieder. Es muss dann erst im Taskmanager gekillt werden ...

Daher [x] wegmachen : auf die Hilfe-Form -> im Objectinspektor -> Bordericons -> biSystemMenu := false


azubi_20 - Di 06.06.06 16:15


Delphi-Quelltext
1:
form2.showmodal;                    

bedeutet, dass nun form2 exklusiv geöffnet wird. alles was aus Form1 kommt wird nun ignoriert. Da du aus form1 dein Memo füllen willst geht das so nicht. Also : erst befüllen, dann zeigen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.NeueRunde1Click(Sender: TObject);
begin
form2.memo1.Lines.Text:=('Nochmal Spielen ?                             '+
'Um das Spiel nochmal zuspielen musst du auf "Datei-->Neuer Versuch" .');
form2.showmodal;
end;


chriss1988 - Di 06.06.06 16:21

ok der fehler mit dem x ist behoben

das mit der message klappt noch net muss morgen weiter arbeiten


chriss1988 - Mi 07.06.06 09:20

user profile iconJayEff hat folgendes geschrieben:
Ich würds ohne DB machen ... Mach ne ini datei mit name=wert oder sowas. DBs sind mehr für viele Einträge gut, denk ich (täusch ich mich?) Ich mag keine DBs weil ich keine Ahnung davon hab ^^
Achja: Weee! 18Punkte! ...bin ich gut? 8(




was is denn eine ini??


azubi_20 - Mi 07.06.06 09:48

user profile iconchriss1988 hat folgendes geschrieben:

was is denn eine ini??


hierzu siehe : http://www.dsdt.info/tutorials/ini/


JayEff - Mi 07.06.06 13:29

oder du machst einfach das: Suche in: Delphi-Forum, Delphi-Library INI Suchen nach dem wort, das ich gebracht hab, dürfte die schnellsten ergenbisse bringen ;> Alternativ biete ich dir noch ein Suchwort: Suche in: Delphi-Forum, Delphi-Library TINIFILE


Born-to-Frag - Mi 07.06.06 14:47

Die Bilder sollten auch gemischt werden :shock: und man sollte nicht die Bilder beim Programmstart sehen können weil erst kurz danach die Buttons sichtbar werden :shock:

greetz


Leuchtturm - Mi 07.06.06 14:50

Och habs mir auch angekuckt und finde du solltest die Exe umbennen und eventuell noch ein Eigenes Icon machen


chriss1988 - Do 08.06.06 08:43

user profile iconBorn-to-Frag hat folgendes geschrieben:
Die Bilder sollten auch gemischt werden :shock: und man sollte nicht die Bilder beim Programmstart sehen können weil erst kurz danach die Buttons sichtbar werden :shock:

greetz


aslo bei mir seg ich am anfang keine bildersondern die buttons :shock:

und was meinst du mit mischen sind doch gemischt?


chriss1988 - Do 08.06.06 10:38

neue änderungen

1. Startseite eingerichtet zum Nemen Eingeben

2. Meldung wenn das spiel vorbei ist.

3 das Problem mit dem[x] ist nun gelöst



//edit: datei ist nun auf der ersten seite


azubi_20 - Do 08.06.06 12:08

kleiner Bug: Wenn ich auf der Startseite "Abbrechen" drücke und dann mit "ja" bestätige ,passiert nix... :(

Ansonsten : Da man für jedes aufgedeckte paar 1 Punkt bekommt, sollte man vielleicht statt "Punkte" "aufgedeckt" schreiben. (18 "Punkte" macht jeder, der bis zu Ende spielt. :) )

Vielleicht überlegst du dir noch ein schöneres Design für deinen Startbildschirm :wink:


Narses - Do 08.06.06 12:15

Moin!

Bitte die Forumsregeln beachten: Downloads/Anhänge immer im ersten Posting im Thread aktualisieren!

(Sagt dir bestimmt auch gleich noch ein Mod... ;))

Ansonsten: findest du fast 2MB für einen Memory-Clone nicht etwas sehr viel... ? :?

cu
Narses

//EDIT: @Punkte zählen: macht irgendwie Sinn, wenn die Anzahl der "falsch" aufgedeckten Pärchen in die Wertung eingingen, oder? Könntest du z.B. abziehen. ;)


chriss1988 - Do 08.06.06 12:24

user profile iconazubi_20 hat folgendes geschrieben:

kleiner Bug: Wenn ich auf der Startseite "Abbrechen" drücke und dann mit "ja" bestätige ,passiert nix... :(

Ansonsten : Da man für jedes aufgedeckte paar 1 Punkt bekommt, sollte man vielleicht statt "Punkte" "aufgedeckt" schreiben. (18 "Punkte" macht jeder, der bis zu Ende spielt. :) )

Vielleicht überlegst du dir noch ein schöneres Design für deinen Startbildschirm :wink:


eh wenn ich das richtig verstehe dann läd er bei dir du drückst auf abbrechen und der ladebalken verschwindet nicht ??

Stimmt das mit den punkten stiimt schon aber ich wollte noch eine zusatz funktion einbauen wenn ich eine highscoor liste hab. Nämlich wenn du unter x zügen bleibst bekommst du x punkte bonus.Aber das wird wahrscheinlich nicht geschehn, da ich das mit der besten liste noch nicht ganz versteh und der abgabe termin am mittwoch ist.



@ Narsen
warum sin 2 mb gr0ß? sind ja auch net gezipt und wie soll ich deiner meinung nach die mb größe verkleiner soll ich statt 36 bildern nur 4 nehemn??


Narses - Do 08.06.06 12:30

Moin!

user profile iconchriss1988 hat folgendes geschrieben:
@ Narsen

Sorry, aber soviel Zeit muss sein: eN - Ah - eR - eS - Eh - eS ;)

Ich habe dich bereits darauf hingewiesen, dass die Verwendung von Bildern voraussetzt, dass du auch die Veröffentlichungsrechte dafür besitzt. Dass du Schüler bist und damit kein Geld verdienen willst mag sein, trotzdem gelten Gesetze auch für dich. :mahn: ;)

Deshalb ist es IMHO eine gute Idee, bei einem solchen Projekt einfach selbst im Programm symbolische Bildchen zu erzeugen. Wie das geht, habe ich dir bereits durch den Link in meinem ersten Posting in diesem Thread versucht mitzuteilen. ;) Nebeneffekt davon: die Exe ist nicht so aufgebläht, weil die Images nicht in der Ressource drin sind. :D

user profile iconchriss1988 hat folgendes geschrieben:
soll ich statt 36 bildern

Wieso 36? Ich denke, da sind Pärchen drin, also sind doch auch nur max. die Hälfte Bildchen nötig, oder? ;)

cu
Narses


azubi_20 - Do 08.06.06 12:55

user profile iconchriss1988 hat folgendes geschrieben:
eh wenn ich das richtig verstehe dann läd er bei dir du drückst auf abbrechen und der ladebalken verschwindet nicht ??


Nein. Bei "Abbrechen" denke ich, dass das Programm beendet wird. Dass du damit "Laden abbrechen" meinst, ist nicht offensichtlich. Daher mein Vorschlag : erst beim Laden den Button anzeigen und die Caption in "Laden abbrechen" ändern.


chriss1988 - Do 08.06.06 13:11

@Narses

1. schuldigung das ich deinen namen falsch geschrieben habe :flehan:

ok ich hab mir dein programm mal angeschaut find das aufjeden fall besser mit den von dir gewälten bildern die erzeugt werden nur kann ich den code eigendlich bei mir einbaun ???


vorallem dein teil mit dem karten mischen ist umeiniges besser als meiner da meiner immer die karten an die selben stellen legt.

also danke das du mich npchmal auf dein memory drauf hingewiesen hast hab ich glatt überlesen :(

@ azubi_20

ok werd ich machen


Narses - Do 08.06.06 13:20

Moin!

user profile iconchriss1988 hat folgendes geschrieben:
kann ich den code eigendlich bei mir einbaun ???

Ich weiß nicht, ob du das kannst, aber was spricht dagegen? ;)

cu
Narses


chriss1988 - Do 08.06.06 14:23

oh eigendlich wollt ich das kann durch ein darf ersetzten


Narses - Do 08.06.06 14:29

Moin!

Klar darfst du; kannst mich ja in den Credits erwähnen... ;)

cu
Narses


chriss1988 - Do 08.06.06 14:45

credits ??

dann must du mir per pm deinen namen schicken


chriss1988 - Do 08.06.06 14:52

Funktionen hinzugefügt:

1. Abbrechen Button geändert und umbenannt
2. Hintergrundbild eingefügt
3. alte Bilder fürs Memory durch Narses idee geändert nun sinds Buchstaben (danke an der stelle)
4. Das Mischsysteme wurde verbessert



bitte weiterhin vorschläge krizik und verbesserungen bringen


PS: es wäre net wenn mir einer ne Highscoore liste programmieren könnte


Born-to-Frag - Do 08.06.06 15:05

Hab jetzt nicht die ganz neue Version bei der das Mischsystem anscheinend verbessert wurde (Finde diese Version nicht). Das Mischsystem gabs vorher nicht :shock: Die Bilder werden bei mir nicht gemischt. Ich starte das Programm und spiel ein bisschen, starte es neu und die Bilder sind genauso.

Naja dass ich kurz die Bilder sehe ist nicht mehr der Fall (hatte ich nur auf nem 2GHz Laptop bemerkt)


greetz


chriss1988 - Do 08.06.06 15:08

versuch den neuen nochmal hatte eben kleine probleme mit dem hochladen


Born-to-Frag - Do 08.06.06 15:10

Ja, jetzt geht es. Also hast du das Mischsystem nicht verbessert sondern hinzugeefügt :D


chriss1988 - Do 08.06.06 15:13

doch habs verbessert vorher hat er mir am anfang immer die selben bilder gebracht


Neidhard von Reuental - Do 08.06.06 15:58

Habs mir nun auch mal angesehn da ich vor einiger Zeit auch ein Memory-Spiel angefangen habe (gibt noch paar Fehler).
Was mir an Deinem Memory aufgefallen ist, ist das Design, da solltest Du auf jeden Fall noch etwas tun.
Wenn ich keinen Namen in das Editfeld eingebe und auf "Bestätigen" klicke bekomme ich eine Message in der steht "Fehler". Es wär also ratsam über dem Editfeld zu schreiben was da reingeschrieben werden soll und in der Message sollte auch der aufgetretene Fehler beschrieben sein.
Dann noch, warum hast du den Menüeitrag "Beenden?" unter "Hilfe" wenn er doch nur darauf hinweist das man unter "Datei"->"Exit" beenden soll?

Hier mal ein Link [http://www.spqr-clan.de/WinMemory.rar] zu meinem Memory, schau es Dir an und vielleicht kommen Dir paar Ideen was Du bei Dir noch alles einbauen kannst.
Edit: Mein Memory benötigt .NET 1.1


Narses - Do 08.06.06 16:07

Moin!

user profile iconchriss1988 hat folgendes geschrieben:
credits ??
dann must du mir per pm deinen namen schicken

Schreib doch einfach "Narses" rein. ;)

(oder soll ich nochmal buchstabieren... :mrgreen: sorry... ;))

user profile iconchriss1988 hat folgendes geschrieben:
doch habs verbessert vorher hat er mir am anfang immer die selben bilder gebracht

Erläuterung: Du mußt im FormCreate-Ereignis einmal Randomize; aufrufen, sonst liefert der Zufallszahlengenerator immer die gleiche Zahlenfolge.

cu
Narses


chriss1988 - Do 08.06.06 18:52

user profile iconNeidhard von Reuental hat folgendes geschrieben:
Habs mir nun auch mal angesehn da ich vor einiger Zeit auch ein Memory-Spiel angefangen habe (gibt noch paar Fehler).
Was mir an Deinem Memory aufgefallen ist, ist das Design, da solltest Du auf jeden Fall noch etwas tun.
Wenn ich keinen Namen in das Editfeld eingebe und auf "Bestätigen" klicke bekomme ich eine Message in der steht "Fehler". Es wär also ratsam über dem Editfeld zu schreiben was da reingeschrieben werden soll und in der Message sollte auch der aufgetretene Fehler beschrieben sein.
Dann noch, warum hast du den Menüeitrag "Beenden?" unter "Hilfe" wenn er doch nur darauf hinweist das man unter "Datei"->"Exit" beenden soll?

Hier mal ein Link [http://www.spqr-clan.de/WinMemory.rar] zu meinem Memory, schau es Dir an und vielleicht kommen Dir paar Ideen was Du bei Dir noch alles einbauen kannst.
Edit: Mein Memory benötigt .NET 1.1



hi
1. was soll ich an dem design veränder?? dann mach auch vorschläge

2.ich kann in das edit feld zahlen buchstaben sonderzeichen usw eingeben und es kommt keine fehlermeldung die muldung kommt nur wenn man nicht eingibt und ok die message war nur testhalber ob es überhaupt geth wir d aber geändert.

3 wenn ich dein öffnen will kommt da en laufzeit fehler an deiner stelle würde ich deins auchmal prüfen ;-)


Neidhard von Reuental - Do 08.06.06 20:10

user profile iconchriss1988 hat folgendes geschrieben:

3 wenn ich dein öffnen will kommt da en laufzeit fehler an deiner stelle würde ich deins auchmal prüfen ;-)


Wie in meinem Post steht wird das .NET 1.1 Framework benötigt ;)


chriss1988 - Di 13.06.06 13:04

user profile iconNarses hat folgendes geschrieben:


//EDIT: @Punkte zählen: macht irgendwie Sinn, wenn die Anzahl der "falsch" aufgedeckten Pärchen in die Wertung eingingen, oder? Könntest du z.B. abziehen. ;)



ist eine überlegung wert aber dann kann es ja passieren, das man - X Punkte hat. Meinst du das ist sinnvoll oder sollte ich für jedes richtoge üäärchen 2 punkte nehmen für ein falsches 1 abziehn?


Narses - Di 13.06.06 13:10

Moin!

Auch ne Methode; ansonsten frag doch ab, ob´s unter Null gehen würde und zieh in diesem Fall nix ab, so dass es nicht negativ werden kann.

Mein Ansatz dabei war halt, dass jemand durch zufälliges Klicken im statistischen Mittel keine Punkte bekommen sollte - hab das ganze aber nicht wirklich durchdacht vorgeschlagen. ;) Sollst ja auch noch was zu tun haben... :D

Ziel generell beim Punktezählen: die Gedächtnisleistung soll belohnt werden!

cu
Narses


chriss1988 - Di 13.06.06 13:22

ok

habs jetzt so gemact das wenn der punktezähler schon auf 0 ist nichts abgezogen wird sollte er aber größer als 0 sein dann wird ei punkt abgezogen

nun tritt ein anderes progblem auf mit der showmessage wenn das spiel vorbei sein soll

vorher habe ich gesagt


Delphi-Quelltext
1:
2:
if points=16 then
 showmessage('Vorbei')

das geht aber jetzt net mehr hat da einer ne idee wie ich das lösen kann?


Narses - Di 13.06.06 13:33

Moin!

Du darfst ja auch nicht den Punktezähler als Indiz "missbrauchen"... ;) Du mußt dir merken, wieviele Felder noch offen sind, und wenn diese Zahl 0 erreicht, ist das Spiel vorbei (siehe Code in meinem Tut).

cu
Narses


chriss1988 - Di 13.06.06 14:45

aha ok

aber sowas hast du bei deinem programm garnet eingebaut


Narses - Di 13.06.06 15:03

Moin!

OK, war etwas schnell beim Schreiben, da fehlte ein "auch". ;) Ich meinte, dass mein Code eine entsprechende Problematik nicht aufweist - sind alle Buttons versteckt, kann man auch nix mehr anklicken. Dass dann das Spiel vorbei ist, sollte ja wohl logisch sein. Abgesehen davon kann man ja nix mehr anklicken, deshalb wird man wohl über kurz oder lang entweder an Langeweile sterben, das Spiel neustarten oder das Programm beenden. ;)

Fazit: Wozu diese Funktion überhaupt einbauen. ;)

cu
Narses


chriss1988 - Di 13.06.06 15:57

ok das mit der massage hab ich nun


chriss1988 - Mi 14.06.06 11:22

so hab noch ein paar änderungen eingebaut


1. die showmessage am ende des spiels überarbeitet
2. schwierigkeitssufen leicht,mittel schwer eingebaut
3. punkte zähler verbessert


es folgt in der v1.3

highscore
das design wird noch überarbeitet


chriss1988 - Di 04.07.06 12:08

so version 1.3 ist nun fertig

es ist nun eine highscoreliste verfügbar und der Punkte Zähler würde geändert
bitte schreibt wider verbesserungen oder Fehler hier rein