Gotoxy



  • Ich benutze folgenden unvollständigen Code um ein Rechteck mit Ascii-Zeichen zu malen. Nur die Ecken befinden sich Oben Links und Unten Rechts direkt nebeneinander 😡

    PrintRect(0, 0, 25, 79, false);
    
    void PrintRect(int cX, int cY, int iWidth, int iHight, bool Clear)
    {
     int Part[6];
     int x, y;
    
     if(Clear)
     {
       for(x = 0; x < 6; ++x)
          Part[x] = ' ';
     }else
     {
       Part[0] = 201;        // Ecke Oben Links
       Part[1] = 205;        // Gerade Horizontal
       Part[2] = 187;        // Ecke Oben Rechts
       Part[3] = 186;        // Gerade Vertikal
       Part[4] = 188;        // Ecke Unten Rechts
       Part[5] = 200;        // Ecke Unten Links
     } // if(Clear)
    
     gotoxy(cX, cY);
     printf("%c", Part[0]);
     gotoxy(cX + iWidth, cY);
     printf("%c", Part[2]);
     gotoxy(cX + iWidth, cY + iHight);
     printf("%c", Part[4]);
     gotoxy(cX, cY + iHight);
     printf("%c", Part[5]);
    
    } // PrintRect
    

    EditBySideWinder: Bitte Code-Tags benützen!

    MfG SideWinder

    [ Dieser Beitrag wurde am 18.11.2002 um 15:25 Uhr von SideWinder editiert. ]



  • die position ganz oben links ist x=1, y=1. nix mit null.

    und statt 79, 78 verwenden. da die konsole sonst eine zeile nach unten geht.
    ausserdem verwechselst du die höhe(25) mit der breite(79) beim funktionsaufruf

    PrintRect(1,1,79,24, false);



  • ähm fehler, hab selber die höhe mit der breite verwechselt 😉

    statt die breite um eins zu verkleinern (also von 79 auf 78) muss natürlich die höhe um eins verkleinert werden (von 25 auf 24).

    ansonsten passt mein vorheriger post 😃


Anmelden zum Antworten