Suche Aufgabe - Rund um das Thema Konsolen Programmierung



  • 😕

    OhneName schrieb:

    #include <iostream>
    #include <limits>
    
    int main()
    {
        int zahl;
    
        std::cout << "Geben Sie eine Zahl ein:\n";
        while(!(std::cin >> zahl))
        {
            // clear hebt den "Fehlerzustand" wieder auf
            std::cin.clear();
            // ignore verwirft die falsch eingegebenen Zeichen
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    
            std::cout << "Fehlerhafte Eingabe, probieren Sie es noch einmal:\n";
        }
    
        std::cout << "Eingegebene Zahl: " << zahl << "\n";
    }
    

    Das mit dem Ignore wird bei meinem VS als rot angestrichen.
    Bist du sicher , dass das richtig ist? Ich habe limits included, keine Sorge^^.



  • Ich hätte noch eine Idee: ein Kartenspiel wie Hearts als Konsolenspiel. Lässt sich sicher auch in Textform gut spielen.

    Edit: Auch wenn das rot angestrichen wird, kompiliert es denn? Wenn nicht, was ist die Fehlermeldung?



  • OK, ich habs jetzt doch hinbekommen. Alles soweit fertig, sind aber eine Menge Klassen, wenn ihr wollt, könnt ihr euch nochmal die Exe Ansehen, nicht vergessen, das Spiel sieht beim starten anders aus, weil ich meine selbstgeschriebene Library use.

    www.imperatorclan.kilu.de/myUploads/Zahlen_Raten.exe

    Durch diese Aufgabe, wie ich noch einmal zusammenfassen kann.
    Ich habe durch diese Übung gelernt, ...
    [list]
    [] Was Zahlen Raten ist, und seine Spielregeln 😃
    [
    ] Wie man Werte richtig einliest, und bei Fehleingaben entsprechend und vor allem richtig darauf reagiert, und nicht unbedingt mit cin.fail(), sondern gleich das gesamte Lesen als Boolean benutzen.
    [*] Meinen Code dynamischer, besser und übersichtlicher zu gestalten

    Danke euch allen, nun werde ich mich an etwas neuem Versuchen, ich denke ich versuche mich am Galgenraten, dazu wollte ich euch aber noch etwas fragen:
    Es gibt Spiele, bei denen ist die Konsole sozusagen das Spielfeld. Aber ich kann nur Text in die Konsole schreiben, nichts mehr, was kann man da so machen, sprich die Konsole als Fläche nutzen, und immer alles neu rein schreiben, nach berechnungen, kann mir da einer was zu erzählen?

    M.f.G. Developer_X


  • Mod

    Developer_X schrieb:

    Danke euch allen, nun werde ich mich an etwas neuem Versuchen, ich denke ich versuche mich am Galgenraten, dazu wollte ich euch aber noch etwas fragen:
    Es gibt Spiele, bei denen ist die Konsole sozusagen das Spielfeld. Aber ich kann nur Text in die Konsole schreiben, nichts mehr, was kann man da so machen, sprich die Konsole als Fläche nutzen, und immer alles neu rein schreiben, nach berechnungen, kann mir da einer was zu erzählen?

    Dafür brauchst du eine Konsolenbibliothek, denn Standard-C++ sieht die Ein-/Ausgabe bloß als einen unformatierten Strom von Bytes an. Für DOS-Konsolen ist glaube ich conio.h am weitesten verbreitet.



  • SeppJ schrieb:

    Developer_X schrieb:

    Danke euch allen, nun werde ich mich an etwas neuem Versuchen, ich denke ich versuche mich am Galgenraten, dazu wollte ich euch aber noch etwas fragen:
    Es gibt Spiele, bei denen ist die Konsole sozusagen das Spielfeld. Aber ich kann nur Text in die Konsole schreiben, nichts mehr, was kann man da so machen, sprich die Konsole als Fläche nutzen, und immer alles neu rein schreiben, nach berechnungen, kann mir da einer was zu erzählen?

    Dafür brauchst du eine Konsolenbibliothek, denn Standard-C++ sieht die Ein-/Ausgabe bloß als einen unformatierten Strom von Bytes an. Für DOS-Konsolen ist glaube ich conio.h am weitesten verbreitet.

    Das hört sich ja interessant an, und was diese Library alles drauf hat, mit dem Abfangen von Key Press usw..
    Ich habe das ja auc bei meinem Visual Studio, ich danke dir für diesen wertvollen Tipp wirklich sehr, danke.

    M.f.G. Developer_X



  • Aufgrund der Anregungen habe ich mich entschlossen, ein Tutorial über conio zu suchen. Ich war auf der Website der Macher von Conio, http://conio.sourceforge.net/tutorial.html, und kann nur sagen, dass ich echt beeindruckt davon bin, was man damit alles machen kann.

    Nun habe ich den folgenden Code bei mir im VS aufgesetzt: (conio.h gibt es ja dort)

    #include <conio.h>
    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    int main()
    {	
    	cout << setxy(10, 10) << setclr(YELLOW) << setbk(BLUE) << "Hello"; 
    
    	system("PAUSE");
    
    	return 0;
    }
    

    Doch bei mir wird setxy(10,10) und der ganze rest in dieser Zeile rot angezeigt.
    Mir kam das schon von Anfang an seltsam vor.

    Warum geht das nicht?

    m.f.G. Developer_X


  • Mod

    "rot angezeigt" ist ein bisschen vage. Was bekommst du denn für Fehlermeldungen wenn du compilieren willst?



  • Das hier:

    1>------ Build started: Project: Galgen_Raten, Configuration: Debug Win32 ------
    1>Build started 05.06.2010 13:45:54.
    1>InitializeBuildStatus:
    1>  Creating "Debug\Galgen_Raten.unsuccessfulbuild" because "AlwaysCreate" was specified.
    1>ClCompile:
    1>  Game.cpp
    1>f:\c++ projekte\galgen_raten\galgen_raten\game.cpp(9): error C2065: 'YELLOW' : undeclared identifier
    1>f:\c++ projekte\galgen_raten\galgen_raten\game.cpp(9): error C2065: 'BLUE' : undeclared identifier
    1>f:\c++ projekte\galgen_raten\galgen_raten\game.cpp(9): error C3861: 'setxy': identifier not found
    1>f:\c++ projekte\galgen_raten\galgen_raten\game.cpp(9): error C3861: 'setclr': identifier not found
    1>f:\c++ projekte\galgen_raten\galgen_raten\game.cpp(9): error C3861: 'setbk': identifier not found
    1>
    1>Build FAILED.
    1>
    1>Time Elapsed 00:00:00.79
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    


  • conio.h ist extrem compilerspezifisch ⚠

    Das was du vorhast läuft vielleicht unter einem Borland oder wie die Firma heute heisst 😃

    Microsoft hatte unter DOS da andere Lösungen, sprich eine andere Syntax - ich weiss aber nicht ob das heute noch in den Compilerpaket drin ist, vermute nein, da ich nix mehr in letzter Zeit davon mit bekommen hab.

    Über den windows.h lässt sich so was lösen. Musst mal suchen, da sollten Beispiele hier im Forum verfügbar sein.



  • f.-th. schrieb:

    Das was du vorhast läuft vielleicht unter einem Borland oder wie die Firma heute heisst 😃

    Die heißen immer noch Borland, haben nur den ganzen Krempel an Embarcadero verkauft.



  • Zwischendurch wurden die Borland-Teile auch als Inprise angeboten 😉



  • Ich habe mein Galgenraten mit ASCII Animation jetzt auch fertiggestellt.

    Wer will es haben, oder mal ansehen?



  • Gib mal den Link für den Download.

    Schaus mir später vielleicht mal an.





  • Dan kannst du ja jetzt ein Spiel programmieren, wo man einen Weg durch ein Labyrinth finden muss. 😉



  • ist doch ganz gut geworden mit dem Galgenbäumchen.

    kleine Anmerkung noch:
    - du solltest bei der Abfrage des Buchstabens nur das erste Zeichen der Eingabe verwenden und den Rest aus dem Eingabebuffer wieder entfernen. Sonst kann man nur tatenlos zusehen, was passiert.
    - Und am Ende ist man im Moment gestroben << 😃 muss wohl eher gestorben heißen

    ansonsten 👍



  • BasicMan01 schrieb:

    ist doch ganz gut geworden mit dem Galgenbäumchen.

    kleine Anmerkung noch:
    - du solltest bei der Abfrage des Buchstabens nur das erste Zeichen der Eingabe verwenden und den Rest aus dem Eingabebuffer wieder entfernen. Sonst kann man nur tatenlos zusehen, was passiert.
    - Und am Ende ist man im Moment gestroben << 😃 muss wohl eher gestorben heißen

    ansonsten 👍

    Lol gestroben^^ Da hat wohl einer mal wieder zu schnell getippt.
    Danke für die Anmerkungen.

    zuzuzuz schrieb:

    Dan kannst du ja jetzt ein Spiel programmieren, wo man einen Weg durch ein Labyrinth finden muss. 😉

    Ginge ja theoretisch, das Problem: Bei der Konsole, kann ich ja nicht die ganze zeit Text hinschreiben, an die gewünschten Koordinaten, da wurde mit Conio.h empfohlen, aber bei VS geht das nicht.
    Leider.

    😞

    Hat noch jemand eine Aufgabe?



  • In dem Buch, mit dem Ich programmiert habe, wurde mal ein Hauptstädte-Quiz geschrieben. Du hast in einer Textdatei die Ländernamen und den Namen der jeweiligen Hauptstadt gespeichert. Das Programm fragt dann die Hauptstadt zu einem bestimmten Land ab.
    Wenn das Programm dann fertig ist, könnte man das noch verfeinern:

    - Der Benutzer kann die Reihenfolge der Abfrage aussuchen: Land->Stadt oder Stadt->Land
    - Fragen werden erst dann wiederholt, wenn alle anderen Fragen an die Reihe gekommen sind.
    - Das Programm merkt sich falsch beantwortete Frangen und stellt diese häufiger

    Wenn ich mir dein Galgenraten-Spiel ansehe, denke ich, dass es für dich kein Problem sein sollte, ein solches Quiz zu schreiben.

    MfG, Jochen



  • Jochen S. schrieb:

    In dem Buch, mit dem Ich programmiert habe, wurde mal ein Hauptstädte-Quiz geschrieben. Du hast in einer Textdatei die Ländernamen und den Namen der jeweiligen Hauptstadt gespeichert. Das Programm fragt dann die Hauptstadt zu einem bestimmten Land ab.
    Wenn das Programm dann fertig ist, könnte man das noch verfeinern:

    - Der Benutzer kann die Reihenfolge der Abfrage aussuchen: Land->Stadt oder Stadt->Land
    - Fragen werden erst dann wiederholt, wenn alle anderen Fragen an die Reihe gekommen sind.
    - Das Programm merkt sich falsch beantwortete Frangen und stellt diese häufiger

    Wenn ich mir dein Galgenraten-Spiel ansehe, denke ich, dass es für dich kein Problem sein sollte, ein solches Quiz zu schreiben.

    MfG, Jochen

    Diese Aufgabe nehmen ich gerne an, dir möchte ich aber noch sagen, mir kommt diese Aufgabe aus einem Markt und Technik-Buch von Dirk Luis bekannt vor, ich hatte das von Java.^^.

    Ich werde diese Aufgabe nun bearbeiten,
    danke Jochen,



  • Stimmt, ich hab mit dem Buch Easy C++ (Dirk Louis, M+T) Programmieren gelernt.
    Ist vielleicht eine der Lieblingsaufgaben des Autors...


Anmelden zum Antworten