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

1

05.12.2012, 11:20

Ausgabefehler im Programm

Hi,

brauche mal wieder eure Hilfe.

Folgendes soll in dem Programm passieren:

1. Abfrage der Spielerpostion durch Eingabe der X-Achse.
2. Überprüft das Programm ob der Spieler sich noch im Bereich des Spielfeldes befindet oder nicht.
3. bei true = Ausgabe: Der Spieler befindet sich auf dem Spielfeld und bei false = Ausgabe: Der Spieler ist außerhalb des Spielfeldes.

Aber es kommt immer die Ausgabe: Der Spieler ist außerhalb des Spielfeldes, egal ob true oder false.

Kann aber keinen Fehler im Programm finden und der Compiler meckert auch nicht.
Wäre nett wenn mal einer über den Code schauen könnte.

LG Radnak

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
#include <iostream>

using namespace std;

//Funktion Protoyp: SpielFeld
bool SpielFeld (int Position, int Min, int Max);

// Hauptprogramm
//
int main ()
{
    // Varialen
    //
    int Minimum = 0;
    int Maximum = 800;
    int xPosition;

    // abfrage Spielerposition
    cout << "Spielerposition auf der X-Achse: ";
    cin >> xPosition;

    if (SpielFeld (xPosition, Maximum, Minimum) == true)
    {
        cout << "Der Spieler befindet sich auf dem Spielfeld" << endl;
    }
    else
    {
        cout << "Der Spieler ist ausserhalb des Spielfeldes" << endl;
    }

    return 0;
}

// Funktion: SpielFeld
//
bool SpielFeld (int Position, int Min, int Max)
{
    if ((Position >= Min) && (Position < Max))
    {
        return true;
    }
    else
    {
        return false;
    }
}

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

05.12.2012, 11:31

Das Problem ist eigentlich relativ einfach zu finden. Ist aber super um sich mal mit dem Debugger zu beschäftigen. Google mal nach dem Debugger für deine IDE. Wenn du also zum Beispiel Visual Studio 2010 benutzt, dann Google einfach mal nach Visual Studio 2010 Debugger. Dann setzt du in deinem Programm mal am Anfang einen Breakpoint und gehst es Schritt für Schritt durch. Dabei guckst du dir die aktuellen Werte der Variablen an. Dann hast du das Problem ganz schnell selbst gefunden und eine wirklich gute Hilfestellung durch den Debugger gelernt. Wenn das mit dem debuggen nicht richtig funktioniert dann schreib hier ruhig noch mal. Dann helfen wir dir dabei ein wenig. Versuchs aber erst mal selbst:)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

06.12.2012, 09:44

So habe alles gemacht, Haltepunkt gesetzt, Debugger gestartet und bin mehrmals Zeile für Zeile durchgegangen.
Da ich aber absoluter Anfänger bin sagen mir die ganzen Informationen nicht wirklich viel.

Das Einzige was mir ein bissen komisch vorkommt ist das bei immer der selben Variablen (Minimum) der Wert negativ ist.
Wieso das so ist, keine Ahnung.

Wo oder was den Fehler verursacht kann ich leider nicht erkennen.

Falls es wichtig ist, Compiler: MS Visual C++ 2010 Express

LG Radnak

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

06.12.2012, 10:03

Setz einen Breakpoint in die SpielFeld-Funktion und schau Dir die Werte Deiner Parameter min und max an. Und dann schau Dir den Aufruf an, und analysiere warum die so sind, wie sie sind.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

06.12.2012, 10:11

Falls es wichtig ist, Compiler: MS Visual C++ 2010 Express


Nein, das ist unwichtig. Fällt dir da was auf?

C-/C++-Quelltext

1
if (SpielFeld (xPosition, Maximum, Minimum) == true)
@D13_Dreinig

6

06.12.2012, 11:52

Habe den Fehler endlich gefunden und dazu noch so ein doofer Fehler.
Denn mache ich hoffentlich nicht noch mal so schnell. :D

Ich danke euch allen, für diese harte Lehrstunde.


LG Radnak

Werbeanzeige