C++ Ascii Spiel programmieren



  • Tut mir leid, dir das zu sagen, aber wenn du nicht den geringsten Ansatz hast, wie du deine Änderungen durchführen könntest, dann wird das nicht funktionieren. Auch nicht mit Hilfe unsererseits. Jetzt könnte dir natürlich jemand was basteln (vorausgesetzt, du findest hier jemanden, der das freiwillig für dich machen möchte). Dann hättest du deinen laufenden und springenden Charakter. Tja, und dann willst du wieder irgendwas haben, wie z.B. mehrere Screens, durch die dein Charakter durchläuft oder so. Und wieder wirst du nicht den geringsten Ansatz haben, wie du den Code verändern musst. Einfach, weil du ihn überhaupt nicht verstehst. Mach es doch anders: lerne die Sprache, in der du programmieren willst, anstatt wild rumzuraten und auf fremde Hilfe angewiesen zu sein. Wenn du dir erst mal ein paar Grundlagen angeeignet hast, ist das Schreiben solcher Konsolenspielchen auch kein Problem mehr. Und damit meine ich selbst schreiben. Nicht aus dem Internet kopieren und im Internet erweitern lassen. Viel befriedigender, glaub mir. 🙂



  • Danke für den Tipp 🙂 Ich habe jetzt ein Buch gekauft (für Anfänger)

    Könntest du mir BITTE beim Spiel helfen? Also immer dazu sagen für was der Code steht und so...ich finde so lernt man programmieren viel schneller 🙂
    wäre echt nett und toll von dir, wenn du mir die Codes die ich für solche Konsolenspiele benötige beibringst und erklärst 👍
    Ich wäre dir sehr sehr dankbar 😃



  • Ich glaube bei dir hackts.



  • Was meinst du mit "ich glaube bei dir hackts" ?! 😕



  • Wir haben zwar keinen größern Wunsch als jemandem hier den Popo abzuwischen, aber leider sind alle Freiwilligen leider schon in den Waldorfschulen im Einsatz, bitte warten Sie, der nächste freie Forenbesucher ohne Leben und Freizeit wird Ihnen zur Hand gehen.



  • Gegenvorschlag: ich gebe dir ein Grundgerüst für ein Konsolenspielchen. Es behinhaltet wirklich nur das Steuern einer Figur über die Pfeiltasten in alle 4 Richtungen. Es hat kein Menü, du kannst nicht springen o.ä., es gibt keine Kollisionsabfrage - es kann fast gar nichts. Aber es ist so simpel, dass du als Anfänger keine großen Schwierigkeiten haben solltest, es zu verstehen. Ich habe bewusst auf alles verzichtet, was dich überfordern könnte. Wenn du einzelne Funktionen oder Schlüsselwörter nicht kennst oder verstehst, schlage sie in der Doku nach (wenn die Doku nicht hilft, frage hier einfach nach). Und sobald du das bisschen Code durchblickst, kannst du anfangen, es nach deinen Wünschen zu verändern. Wenn du beispielsweise eher in Richtung Jump 'n' Run gehen willst, macht es keinen Sinn, dass du die Figur nach unten steuern kannst. Also nimmst du es raus. Es macht keinen Sinn, dass du die Figur zeichenweise nach oben bewegen kannst. Also änderst du es ab und machst aus dem simplen Bewegen einen Sprung. Und damit du nicht auf dem Nichts 'rumspringst, zeichnest du unten einen Balken. Und so weiter, und so weiter. Arbeite dich Stück für Stück vor.

    ich finde so lernt man programmieren viel schneller

    Nö, leider nicht. Man lernt programmieren am besten, indem man programmiert. Nicht, indem man fremden Code benutzt, den man nicht versteht.

    #include <iostream> 
    #include <windows.h> 
    #include <conio.h> 
    
    using namespace std; 
    
    void SetPos(int x, int y) 
    { 
    	COORD cPos; 
    	cPos.X = x;
    	cPos.Y = y;
    	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cPos); 
    }
    
    enum Keys {
    	left=75,
    	right=77,
    	up=72,
    	down=80
    };
    
    int main() {
    	unsigned int xPos=40;
    	unsigned int yPos=12;
    	const char player=1;
    
    	do {
    		SetPos(xPos,yPos);
    		cout << player;
    		if(kbhit()) {
    			SetPos(xPos,yPos);
    			cout << " ";
    			unsigned char key=getch();
    			switch(key) {
    			case Keys::left:
    				--xPos;
    				break;
    			case Keys::right:
    				++xPos;
    				break;
    			case Keys::up:
    				--yPos;
    				break;
    			case Keys::down:
    				++yPos;
    				break;
    			}
    		}
    	} while(1);
    }
    


  • @_matze
    Bitte antworte doch auf so unverschämte Anfragen nicht auch noch.
    Ich persönlich finde sogar jegliche Erklärung warum das total unverschämt ist schon zuviel, ich mach mich doch nicht zum Affen und erkläre jmd. die Grundbegriffe der Höflichkeit.



  • @_matze
    vielen vielen Dank!!
    Ich finde dein Vorschlag gut und werde es auch so probieren! 🙂



  • Beim Kompilieren gab es Fehlermeldungen:

    [Error] 'Keys' is not a class or namespace

    😕 😕 Was jetzt??



  • Humanorgan schrieb:

    Beim Kompilieren gab es Fehlermeldungen:

    [Error] 'Keys' is not a class or namespace

    😕 😕 Was jetzt??

    Jetzt guckst du in dein Programmiersprachenbuch für Anfänger und schlägst nach.



  • PS:

    Der Code von _matze läuft übrigens nicht unter Linux.



  • hustbaer schrieb:

    @_matze
    Bitte antworte doch auf so unverschämte Anfragen nicht auch noch.
    Ich persönlich finde sogar jegliche Erklärung warum das total unverschämt ist schon zuviel, ich mach mich doch nicht zum Affen und erkläre jmd. die Grundbegriffe der Höflichkeit.

    Na ja, ich hatte hier noch Hoffnung, ehrlich gesagt. Ich hoffe, dass er sich jetzt mal auf seinen Arsch setzt und lernt, und wir nicht (mehr) jede Zeile vorkauen sollen. 😉

    Popo Abwischer schrieb:

    PS:

    Der Code von _matze läuft übrigens nicht unter Linux.

    Muss er auch nicht. Siehe Eröffnungspost (windows.h).



  • Ich bin der Meinung das man Neulingen frühzeitig beibringen sollte, darauf zu achten, dass der Code crossplattformfähig ist und überall läuft.



  • @Humanorgan:
    Fehler von _matze.
    Ersetze das enum durch ein enum class oder lasse das Keys:: weg.


Anmelden zum Antworten