Unbekanntes problem



  • ich habe folgenden code geschrieben

    void InOutput::ShowMap(int mapwidth, int mapheight, Map mapnum, Player playernum)
    {
    	int musthavelivepoints = 10;
    	int musthavexppoints   = 10;
    	int counter            = 1;
    
    	for (int y = 0; y < 80; y++)
    	{
    		for (int x = 0; x < 24; x++)
    		{
    			if (y >= 0 && y <= 11 && x == 0)
    			{
    				if (y == 0)
    				{
    					cout << "<";
    				}
    				else if (y == 11)
    				{
    					cout << ">";
    				}
    				else if (y == counter)
    				{
    					if (playernum.LivePoints >= musthavelivepoints)
    					{
    						cout << "O";
    					}
    					else 
    					{
    						cout << " ";
    					}
    
    					musthavelivepoints = musthavelivepoints + 10;
    					counter            = counter            + 1;
    				}
    			}
    			else
    			{
    				if (playernum.Y_player == y && playernum.X_player == x)
    				{
    					cout << "P";
    				}
    				else
    				{
    					if (mapnum.Map1[y][x].InUse == true)
    					{
    						cout << "X";
    					}
    					else
    					{
    						cout << ".";
    					}
    				}
    			}
    		}
    	}
    };
    

    ich weiss es ist nicht der beste aber ich habe ein grosses problem damit. wenn ich es debugge kommt sowas in der art raus

    <.....................O........................O..........
    ..........O......................O..............O...........O......
    ................O...................O............................O.....
    ....................O.....................>
    

    wo ist der fehler ???

    danke schonmal im vorraus



  • Eine Beschreibung, was du erreichen willst und an welche Teile der Ausgabe falsch sind, wäre auch nicht schlecht.
    So kann man nur sagen, dass der Code ganz genau das tut, was er soll und keine fiesen Fallen versteckt sind.



  • Beantworte zunächst folgende Fragen:

    • Was sollte die Ausgabe sein?
    • Wofür ist diese Funktion?
    • Was sind die Datentypen Map und Player ?

    Deiner Frage fehlt jeglicher Kontext. So muss man sich hier mit Raterei abplagen, auf die hier (selbstverständlich) keiner Lust hat.



  • Wenigstens ist der Titel passend gewählt. Dein Problem ist absolut unbekannt.



  • also player und map sind zwei klassen die ich erstellt habe und ich habe in der map.h ein 2d array erstellt welches 80 x 24 b.z.w 79 x 23 ist. ich möchte dieses array ausgeben aber das geschilderte problem ist nicht das einzige. ich habe außerdem das problem, dass wenn ich meine player koordinaten auf 6 und 6 setze, der player ober rechts im bild erscheint



  • Das beantwortet keine der gestellten Fragen...


  • Mod

    WhileTrueDo schrieb:

    also player und map sind zwei klassen die ich erstellt habe und ich habe in der map.h ein 2d array erstellt welches 80 x 24 b.z.w 79 x 23 ist. ich möchte dieses array ausgeben aber das geschilderte problem ist nicht das einzige. ich habe außerdem das problem, dass wenn ich meine player koordinaten auf 6 und 6 setze, der player ober rechts im bild erscheint

    Das beantwortet nicht wirklich die Fragen. Insbesondere nicht:

    Sone schrieb:

    • Was sollte die Ausgabe sein?

    Marthog schrieb:

    Eine Beschreibung, was du erreichen willst und an welche Teile der Ausgabe falsch sind, wäre auch nicht schlecht.

    Im Gegenteil: Es wirft mehr Fragen auf, was dein zweites Problem ist, welches du ebenfalls unzureichend beschreibst.

    Ich rate einfach mal: Du willst die x- und die y-Schleife andersherum haben.

    Falls es das nicht ist: Weiter gucke ich mir dein Problem nur an, wenn du eine brauchbare Problembeschreibung abgibst.



  • Und ich rate mal weiter:
    es fehlt wohl ein Zeilenumbruch nach jeder Zeile 😉

    for (int y = 0; y < 80; y++)
    {
        for (int x = 0; x < 24; x++)
        {
             // ...
        }
    
        cout << '\n';
    }
    

Anmelden zum Antworten