Konsolen Anwendung etwas schöner gestalten?



  • Guten Abend erstmal, naja bzw guten Morgen 🙂
    Um mich Kurzzufassen, wir machen in Programmieren eine Gruppenarbeit und ich wollte das intro/Gewinner Outro/Verlierer Outro machen 🙂
    Wie ich das machen möchte hab ich schon so im Kopf nur an der Umsetzung scheitert es kläglich x: Weil ich wirklich keine Ahnung habe ._.
    Ehm bevor ich weiter erkläre was genau ich möchte erstmal mein Quelltext

    #include <iostream> 
    #include <windows.h> 
    using namespace std; 
    
    int main(int argc, char *argv[]) 
    {   
    cout <<"                             X                ___                   "<<endl; 
    cout <<"               X            XXX              /\\__\\               "<<endl; 
    cout <<"               XX XXXXXXXXXXXXX             /:/  /                  "<<endl; 
    cout <<"               XXXX        XXXXXX          /:/  /      ___      "<<endl; 
    cout <<"             XXXXXXX            XX        /:/  /      /\\  \\   "<<endl; 
    cout <<"           XXX  XXXX             X       /:/__/      /::\\  \\   "<<endl; 
    cout <<"           XX                  XXX       \\:\\  \\     /:/\\:\\  \\  "<<endl; 
    cout <<"           X            X     XXXX        \\:\\  \\   /:/  \\:\\  \\ "<<endl; 
    cout <<"           XX          XXXXX   XXXX        \\:\\  \\ /:/__/ \\:\\ _\\"<<endl; 
    cout <<"           XXX          XXXXX      XX       \\:\\  \\\\:\\ \\   /:/ /"<<endl; 
    cout <<"            XXX XXXX     XXX       XX        \\/__/ \\:\\ \\ /:/ / "<<endl; 
    cout <<"              XXXXXXX        XXXXX XX               \\:\\ /:/ /"<<endl; 
    cout <<"                 XXXXXX           XX             ___  \\::/ /"<<endl; 
    cout <<"                     XXXXXX  XXXXX              /\\  \\  \\/_/   "<<endl; 
    cout <<"                        XXXX XXXXXXX           /::\\  \\   "<<endl; 
    cout <<"                      XXXXXXX XXX  XXX        /:/\\ \\  \\  "<<endl; 
    cout <<"                     XXX  XXXX XXXX  XX      _\\:\\_\\ \\  \\ "<<endl; 
    cout <<" X                  XXXX  XXXX  XXXXXXX     /\\ \\:\\ \\ \\__\\ "<<endl; 
    cout <<" XX           XXXXXXXX   XXX   XX   XXX     \\:\\ \\:\\ \\/__/ ___ "<<endl; 
    cout <<" XX         XXXXXXXXXXXXXX    XXX            \\:\\ \\:\\__\\  /\\  \\"<<endl; 
    cout <<" XXX       XXXXXXXXXXXXX    XXX               \\:\\/:/  / /::\\  \\ "<<endl; 
    cout <<" XXXX      XXXXXXXXXXXXXXXXXX                  \\::/  / /:/\\:\\  \\   "<<endl; 
    cout <<" XXXXX     XXXX    XXXXXXXX                     \\/__/ /::\\_\\:\\  \\"<<endl; 
    cout <<"   XX    XXXXXXX    XX  XX                           /:/\\:\\ \\:\\__\\"<<endl; 
    cout <<"    XX XXXXXX XX    X   XX                           \\/__\\:\\/:/  /"<<endl; 
    cout <<"    XXXXXX     XX   XX   X                                \\::/  /"<<endl; 
    cout <<"     XXX       XX   XXXXXXX                               /:/  /"<<endl; 
    cout <<"               XXXXXX                                    /:/  /"<<endl; 
    cout<<"                                                         \\/__/"<<endl; 
        return 0; 
    }
    

    (Zugegeben das Loser ist nicht sehr nett 😃 und das Loser ist dort mit "A" geschrieben weil ich beim besten willen kein "R" hinbekommen habe nur bevor sich jemand wunedert :d)

    Es ist glaube ich unschwer zu erkennen das es nur ein Bild ist und keine schwere Programmierung 😃
    also ich hab mir vorgestellt das die Konsole an sich Hintergrund Schwarz hat und den Vordergrund Rot (Wie ich das mache weiß ich schon)
    So und jetzt zu meiner Frage (nachdem ich mich doch nciht kurz gefasst habe)
    Ich möchte das, dass Loser abwechselnd in Dunkelrot und Lila ist und zwar nur das wort :o
    Ich dachte das geht wahrscheinlich mit einer while schleife und Sleep nur ist der punkt an dem ich nicht weiter komme dieser, das auch nur wirklich das wort eingefärbt wird :s
    Ich hoffe ich hab das verständlich genug beschrieben was mein Problem ist :o wenn nicht entschuldige ich mich und werd offene Fragen natürlich ergänzen ! 🙂
    Und vielleicht hat hier ja noch jemand lustig


  • Mod

    C++ ist eine Sprache die für extrem effizientes, maschinennahes Progammieren mit starken Abstraktionsmitteln entwickelt wurde, nicht um in leuchtend flackernden Farben andere Leute zu demütigen.

    das auch nur wirklich das wort eingefärbt wird :s

    Ohne es (unter Linux) testen zu können, SetConsoleTextAttribute kann nacheinander aufgerufen werden um für eine Ausgabe verschiedene Farbwerte einzustellen.
    Du wirst in jedem Schleifendurchlauf

    • Die Farbe einstellen
    • Ausgeben
    • Warten
    • Die Konsole leeren

  • Mod

    Das ist eine konsolenabhängige Frage, da die abstrakte Maschine des C++-Standards keine spezielle Konsole definiert (Ein standardkonformes C++-Programm kann auch ohne Probleme auf einem Buschcomputer aus Kokosnusshälften und Bambusrohren laufen. Es braucht bloß irgendeine Form von Zeichenein- und ausgabe). Grob kann man fragen: Windows oder was anderes?

    Die Idee in allen Fällen wäre:
    -Ausgeben (in der zuerst gewünschten Farbe)
    -Warten
    -Mit Cursor an passende Stelle springen
    -Ausgeben (in der anderen Farbe)
    -usw.



  • Vielleicht ist das ja was für dich.

    http://www.c-plusplus.net/forum/25304-full



  • Hi,

    falls du Windows nutzt dann wuerde ich in diesem Fall:
    CreateConsoleScreenBuffer, FillConsoleOutputAttribute, SetConsoleActiveScreenBuffer usw verwenden.
    Damit kannste deine 2 Buffer mit den jeweiligen Farben erstellen und immer hin und her swappen.

    Gruessle stuxn


Log in to reply