Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

1

03.02.2011, 16:21

Pong-Highscoreliste Hilfe

Hallo erstmal,

ich habe in letzter Zeit ein bisschen an einem Pong-Klon gearbeitet.
Hat alles super geklappt bin total zufrieden, bis ich jetzt mit der Highscoreliste angefangen habe.
Das ganze ist mit der SFML 2.0 programmiert.

Die Highscoreliste wollte ich in eine eigene Klasse schreiben und dort eine verkettete Liste einer Struktur mit Name, Punktzahl und Highscoreposition benutzen.
Allerdings bricht das Programm immer ab, wenn ich versuche, den Highscorebildschrim aufzurufen (bzw bisher nur eine einzige Zahl des Highscores als Test).

Hier der Quellcode.

Könnt ihr mir da vielleicht helfen?
Wäre auch nett, wenn ihr mal allgemein über den Code schaut, ob ich irgendetwas besser hätte machen können oder ob es so gut ist.

MFG, Ressaw

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

03.02.2011, 16:30

Schon debugged? Was für ein Fehler kommt denn?

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

3

03.02.2011, 16:33

Also beim Kompilieren kommt kein Fehler.
Wenn ich das Programm im Debug-Modus durchlaufen lasse, dann springt der (natürlich) immer im SFML-Code hin und her und ich find den Fehler auch nicht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

03.02.2011, 16:35

Schau mal am Callstack von wo du in diesem problematischen Code landest und check dann ob dort alle Werte Ok sind.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

03.02.2011, 16:41

Ich habe mal schnell drüber geschaut und so, wie ich das sehe hast du m_pStringScore nirgends initialisiert. Das wird der Fehler sein.

Also wenn ich mir den Code anschaue, dann gibt es da (leider) viel zu beanstanden. Darum erst mal Stichwortartig:
  • using namespace im Header ist schlecht
  • du benutzt viel zu viel dynamischen Speicher, wo er gar nicht nötig wäre (new); auch in der Liste, was auch nicht nötig ist
  • du hast zu viele Variablen, die als Klassenmember gespeichert werden -> mach lokale daraus, wenn das Objekt sie als ganzes nicht braucht
  • merkwürdige Einrückung (inkonsistent)
  • du hast eine dynamische Struktur für Highscores, warum benutzt du allerdings eine feste Zahl? (9)
  • Konstruktoren benutzen (für sScore z.B)
  • IntToString sollte erstens keine Memberfunktion sein und vor allem das machen, was der Name sagt und das ist nicht ein int aus einer Liste holen und irgendwo einfügen, sondern intuitiv wäre das eine Umwandlung von einem int zu einem String, wo der int als Parameter herkommt
Das ist jetzt nicht böse gemeint, aber denk mal ein wenig über die Punkte nach und probier das das nächste mal besser zu machen. Klar kannst du einiges noch nicht wissen, aber mit der Zeit kommt das schon. Einfach ein wenig weiter lesen/üben und gewissen Code immer mal wieder hinterfragen. ;)

//EDIT:
Bei einem solchen Fehler will das Handwerk mit dem Debugger gelernt sein. Wenn du dich mal mit dem Debugger angefreundet hast, dann hilft der dir enorm Fehler zu finden. So etwas hättest du sehr schnell selbst gefunden. Und dass hier jedesmal jemand über den Code schaut kannst du nicht erwarten. Habe das auch nur gemacht, weil ich gerade ein wenig Zeit habe. ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

03.02.2011, 16:46

Bei einem solchen Fehler will das Handwerk mit dem Debugger gelernt sein. Wenn du dich mal mit dem Debugger angefreundet hast, dann hilft der dir enorm Fehler zu finden. So etwas hättest du sehr schnell selbst gefunden. Und dass hier jedesmal jemand über den Code schaut kannst du nicht erwarten.

Genau darum wollt ich ihn dazu bringen den Fehler selbst zu finden :P

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

03.02.2011, 16:50

Jaja.. normalerweise mache ich das ja auch nicht. Dachte nur, dass ich Heute mal nett bin. ;)

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

8

03.02.2011, 16:54

Danke, dass du mal über den Code geschaut hast und danke für die Kritik!

Ich werd versuchen, alles umzusetzen und meinen Code mal zu verbessern.

Mit dem Debugger war ich auch schon in Richtung m_pStringScore gekommen, aber halt noch nicht ganz.

PS.: Ich hab auch eigentlich nicht erwartet, dass jemand da mal drüber schaut (also über den ganzen Code), aber ich habe es gehofft (und mein Wunsch ist in Erfüllung gegangen, nochmals danke :) )

// Edit: Und nächstes mal tüftle ich mal ein bisschen mehr mit dem Debugger rum ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

03.02.2011, 17:20

// Edit: Und nächstes mal tüftle ich mal ein bisschen mehr mit dem Debugger rum ;)

Hehe das ist eine gute Idee, glaub mir, ca. 80% von allem was ich übers Programmieren weiß hat mir mein Debugger beigebracht ;)

Werbeanzeige