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

Ncjeu

Frischling

  • »Ncjeu« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Hamm

Beruf: Schüler

  • Private Nachricht senden

1

30.05.2011, 19:22

Unbehandelte Ausnahme in einem Pong-Klon

Hey
Leute,
erst einmal: ich bin zwar neu hier im Forum, hoffe
aber, trotzdem Hilfe zu erhalten. Ich bin vor einiger Zeit mit dem
Buch C++ für Spieleprogrammierer in die Programmierung eingestiegen
und habe grade das Kapitel über Strukturen abgeschlossen. Da mir
dieses Zahlenraten-Spiel zu einfach ist und es keine größeren
Aufgaben am Kapitelende gibt, habe ich mir überlegt zu versuchen,
einen kleinen Pong-Klon zu entwickeln- dieser soll aber wirklich sehr
simpel werden.
Also habe ich mit dem Programmieren angefangen und
es mal zur Probe ausgeführt, als ich fast noch gar nichts hatte, und
siehe da: eine Unbehandelte Ausnahme. Es sollen einfach das
"Spielfeld" und der "Spieler" in Form von Xen
ausgegeben werden.
Hier ist mal der Code, die Infos zur
unbehandelten Ausnahme hänge ich gleich an, falls man sie denn
braucht :|



Hm... Irgendwie wird der gesammte Code in vier Zeilen angezeigt, deswegen kopier ich ihn hier einfach so rein:






C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>

using namespace std;

struct Spieler
{
    int XPos;
    int YPos;
    bool Alive;
};

struct Feld 
{
    char Ausgabe;
};

struct Ball
{
    int XPos;
    int YPos;
};
int main()
{
    const int Hoehe = 25;
    const int Breite = 50;
    Feld Map[Hoehe][Breite];
    Spieler Player[6];
    Ball bBall;
    bBall.XPos = 24;
    bBall.YPos = 0;
    int xPos = 20;
    for (int i = 0; 0 < 6; i++)
    {
 Player[i].Alive = true;
 Player[i].XPos = xPos;
 Player[i].YPos = Hoehe - 1;
 --xPos;
    };
    
    for (int i = 0; i < Hoehe; i++)
    {
 for (int j = 0; j < Breite; j++)
 {
 if (i == bBall.YPos && j == bBall.XPos)
 cout << Map[i][j].Ausgabe;
 else if (i == Player[0].YPos && j == Player[0].XPos)
 cout << Map[i][j].Ausgabe;
 else if (i == Player[1].YPos && j == Player[1].XPos)
 cout << Map[i][j].Ausgabe;
 else if (i == Player[2].YPos && j == Player[2].XPos)
 cout << Map[i][j].Ausgabe;
 else if (i == Player[3].YPos && j == Player[3].XPos)
 cout << Map[i][j].Ausgabe;
 else if (i == Player[4].YPos && j == Player[4].XPos)
 cout << Map[i][j].Ausgabe;
 else if (i == Player[5].YPos && j == Player[5].XPos)
 cout << Map[i][j].Ausgabe;
 else 
 cout << " ";
 }
 cout << endl;
    }
system ("PAUSE");

return 0;

}




Sobald
man das Programm startet erscheint die Meldung:

Unbehandelte
Ausnahme bei 0x77a564f4 in Pong.exe: 0xC0000005: Access
violation.


Klickt man auf unterbrechen, so wird dies hier
angezeigt:
77A564F4 ret

Konntet ihr damit was
anfangen? Ich hoffe auf Hilfe, ich habe schon alles mir mögliche
versucht bzw. verändert, aber irgendwie bleibt der fehler ?(
Viele
Grüße, ncjeu
</iostream>

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ncjeu« (30.05.2011, 21:41)


Tschonni

Treue Seele

Beiträge: 113

Wohnort: Tirol

Beruf: Schüler

  • Private Nachricht senden

2

30.05.2011, 19:27

Statt dieser Zeile:

C-/C++-Quelltext

1
for (int i = 0; 0 < 6; i++)


muss das stehen:

C-/C++-Quelltext

1
for (int i = 0; i < 6; i++)



Bei 0 < 6 läuft die Schleife unendlich lang.
Aber ich glaube dass weißt du und das war nur ein Schreibfehler.

Ncjeu

Frischling

  • »Ncjeu« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Hamm

Beruf: Schüler

  • Private Nachricht senden

3

30.05.2011, 19:30

o.O Danke für deine schnelle Hilfe, es läuft :) (zumindest werden mir jetzt so komische Zeichen ausgegeben, die zwar keine Xe sind, aber eine gewisse Ähnlichkeit mit ihnen haben)
IRgendwie wundert es mich immer wieder, wie oft einem die banalsten Fehler nicht auffallen...
Viele Grüße, ncjeu

BLU3 L30PARD

Treue Seele

Beiträge: 336

Wohnort: Hoch oben im Norden Schleswig Holsteins

Beruf: Schüler

  • Private Nachricht senden

4

30.05.2011, 19:49

Bitte benutz doch die Code-Tags (

C-/C++-Quelltext

1
 <DEINCODE>
) ;)
Das brennt ja in den Augen, deinen Code anzuschauen...

Ncjeu

Frischling

  • »Ncjeu« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Hamm

Beruf: Schüler

  • Private Nachricht senden

5

30.05.2011, 20:01


Hm... Irgendwie wird der gesammte Code in vier Zeilen angezeigt, deswegen kopier ich ihn hier einfach so rein:



Das ging irgendwie nicht richtig...

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

30.05.2011, 20:19

Wenn du den Beitrag schreibst kannst du zwischen dem Editor-Tab und Quellcode-Tab wechseln. Ich schreibe meine Beiträge immer im Quellcode-Tab, weil da genau das raus kommt was ich will. Als Programmierer sollte man damit wohl keine Probleme haben. Probiers mal aus ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Ncjeu

Frischling

  • »Ncjeu« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Hamm

Beruf: Schüler

  • Private Nachricht senden

7

30.05.2011, 21:16

-.- Ok, merke ich mir fürs nächste mal, aber ich schreibe den code ja nicht direkt in den post ;)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

8

30.05.2011, 21:35

aber ich schreibe den code ja nicht direkt in den post ;)

Dann funktioniert das Kopieren auch besser. Die Codetags kannst du dir über die obere Leiste holen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Ncjeu

Frischling

  • »Ncjeu« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Hamm

Beruf: Schüler

  • Private Nachricht senden

9

30.05.2011, 21:40

ok, danke für den tipp. werde ich beherzigen :) . Juhuu, mittlerweile funktioniert auch die Pfeiltasten-Steuerung.
Edit: Du hattest recht, das geht ja wirklich einfacher

Werbeanzeige