Projektvorstellung: Guess me


  • Mod

    Tat das Not, ein einfaches Konsolenspiel unportabel zu programmieren? Ich kann's nicht spielen!



  • Ganz schick für dein erstes Projekt. Natürlich ist hier und da mal eine Sache zu bemängeln, aber das sollte normal sein. Scheinst dir Mühe gegeben zu haben 😉



  • Minispiri schrieb:

    Ansonsten: Du brauchst nicht für jede Funktion zwei Dateien zu erstellen.

    Ich glaube dann habe ich dich falsch verstanden, sorry...

    Ja, du hast h-Dateien mit nur einer Deklaration drin und entsprechende cpp-Dateien mit nur einer Definition drin.

    Als User? Habs nur einmal gespielt. Das "beliebige Taste drücken" gefolgt von ich weiß nicht wie vielen Leerzeichen stört ein wenig.

    Meinst Du das wegen meiner Funktion "clear-screen" ?

    Ja.



  • FreakY<3Cpp schrieb:

    Ganz schick für dein erstes Projekt. Natürlich ist hier und da mal eine Sache zu bemängeln, aber das sollte normal sein. Scheinst dir Mühe gegeben zu haben

    Danke für die positive Kritik 😉

    Michael E. schrieb:

    Du hast viele Wiederholungen in deinem Code, z. B. könntest du dir ne Funktion schreiben, die die Ausgabe übernimmt, sodass nicht jede zweite Zeile

    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), 14);
    

    lautet. Insgesamt sind das viel zu viele Zeilen für so ein kleines Programm.

    Ja, hast Recht und hab's gerade editiert. Die beiden Links hab ich auch wieder
    aktualisiert.

    Michael E. schrieb:

    Ja.

    Ist jedoch besser als system-Befehle zu benutzen 😉



  • Minispiri schrieb:

    Ist jedoch besser als system-Befehle zu benutzen 😉

    Wuerde ich nicht unbedingt sagen. Du beziehst dich naemlich auf Standardgroessen. Was aber, wenn ich mein Konsolenfenster so einstelle, dass 240 Zeichen pro Zeile und insgesamt 100 Zeilen sichtbar sind? Da hilft der Einfachheit halber am ehesten:

    system("cls");
    

    unter DOS / Windows und:

    system("clear");
    

    unter Linux / UNIX / BSD / MacOS / [...].



  • heini schrieb:

    Minispiri schrieb:

    Ist jedoch besser als system-Befehle zu benutzen 😉

    Wuerde ich nicht unbedingt sagen. Du beziehst dich naemlich auf Standardgroessen. Was aber, wenn ich mein Konsolenfenster so einstelle, dass 240 Zeichen pro Zeile und insgesamt 100 Zeilen sichtbar sind? Da hilft der Einfachheit halber am ehesten:

    system("cls");
    

    unter DOS / Windows und:

    system("clear");
    

    unter Linux / UNIX / BSD / MacOS / [...].

    Ich habe keine Leerzeichen verwendet, sondern 25 Zeilenumbrüche 😉



  • Ja, es ist wirklich unglaublich wichtig, dass bereits Anfängerprogramme auch auf Unix und BSD Systemen laufen.

    🙄



  • this->that schrieb:

    Ja, es ist wirklich unglaublich wichtig, dass bereits Anfängerprogramme auch auf Unix und BSD Systemen laufen.

    🙄

    Ja, es ist wirklich unglaublich wichtig total sinnlose 🙄 hier reinzuposten.

    Wo ist das Problem wenn er erwähnt wie es unter *NIX/BSD/... geht? Kann der OP ja einfach ignorieren wenn es ihn nicht interessiert.

    Die Kritik war ja nicht dass es auf *NIX/BSD nicht geht, sondern dass seine Variante von "Clear-Screen" nervt. Und die macht auch unter Windows kein "Clear-Screen", sondern schreibt einfach nur nen Haufen Leerzeilen. Im Konsolenfenster raufscrollen reicht um den alten Content zu sehen.



  • hustbaer schrieb:

    Die Kritik war ja nicht dass es auf *NIX/BSD nicht geht, sondern dass seine Variante von "Clear-Screen" nervt. Und die macht auch unter Windows kein "Clear-Screen", sondern schreibt einfach nur nen Haufen Leerzeilen. Im Konsolenfenster raufscrollen reicht um den alten Content zu sehen.

    Nun ja, das "clear Programm" unter Ubuntu macht nix anderes. Der einzige Unterschied ist, dass es die Größe der Konsole mit berücksichtigt. Über andere Distributionen bzw. Window Manager kann ich jetzt keine Aussage machen.



  • BTW: auf allen ANSI kompatiblen Terminals sollte folgendes funktionieren:

    std::cout << "\33[2J\33[1;1H" << std::flush;
    

    Müsste auch mit den gängigen Linux Konsolen gehen. (Hab es allerdings nicht probiert)


Anmelden zum Antworten