[Novize] DOS-Anwendungs - neu zeichnen lassen?!



  • Hallo Leute!

    Ich versuche mich im Moment mit dem kniffligen MS-DOS drawing. Möchte eine kleine Spielfläche visuell darstellen. Ebenfalls möchte ich das Ganze über eine Funktion neu zeichnen lassen wobei x|y Koordinaten die Position eines Punktes im Feld jeweils beeinflussen.

    Dazu kenne ich den ASCII Carriage Return den ich nutzen kann um auf den Anfang einer Line zu kommen. Jedoch liegt mein Cursor ziemlich weit unten - demnach muss ich irgendwie in die Vertikale kommen um das komplette Abbild neu zu erzeugen. Vertical Tab hat hier NICHT seinen Dienst getan.

    Ich habe das Ganze damals in nem Lernbuch gemacht - leider finde ich das Kapitel nicht mehr.

    Bitte um Hilfe!

    Wen es interessiert - mein kleiner Versuch:

    /* KI Projekt v.0.1 (C) Patrick Höfer
    																						Entwicklungszeitraum: 22.10.2013 bis X
    																					*/
    
    #include <iostream>
    
    void genFrame(int, int);
    
    char TAB = 9;
    char VERT = 11;																	
    char SOL = 13;
    char BELL = 7;
    
    #define width 20
    #define height 10
    
    using namespace std;
    
    int main() {
    
    	int x_Pos = 15;
    	int y_Pos = 5;
    
    	genFrame(x_Pos, y_Pos);
    
    	system("Pause");
    
    }
    
    void genFrame(int x_Pos,int y_Pos) {
    
        int x = 0;
    	int y = 0;
    
    	char fieldBorders[0][0];
    
    	cout << TAB << TAB << TAB << "KI-Projekt v.0.1 (c) Patrick Hoefer" << endl << endl;
    
    	cout << endl << TAB << TAB << TAB << TAB;
    
    	for(x = 0; x < width; x++) {													// Oberkante Spielfeld
    		fieldBorders[x][y] = 'x';
    		cout << fieldBorders[x][y];
    		}
    
    	cout << endl;
    
    	for(y = 0; y < height; y++) {													// Hauptteil Spielfeld			
    
    		cout << TAB << TAB << TAB << TAB;											//
    
    		for(x = 0; x < width; x++) {												//
    
    			if((x == 0) || (x == width-1)) {										//
    					fieldBorders[x][y] = 'X';											//
    				}
    			else if((x == x_Pos) && (y == y_Pos))
    				fieldBorders[x][y] = 'O';
    			else
    				fieldBorders[x][y] = ' ';
    
    			cout << fieldBorders[x][y];		
    
    			if(x == width-1) cout << endl;											//
    		}																			//
    	}																				//
    
    	cout << TAB << TAB << TAB << TAB;												// Hauptteil Ende Spielfeld
    
    	for(x = 0; x < width; x++) {													// Unterkante Spielfeld										
    		fieldBorders[x][y] = 'x';
    		cout << fieldBorders[x][y];
    		}
    
    	cout << endl << endl << endl << endl << endl;
    
    }
    


  • Der vorliegende Quellcode hat erstmal garnichts mit CLI/.NET zu tun ->falsches Forum

    Soll das auf allen Systemen laufen ?

    Wenn Windows als Zielplattform reicht; da haben wir vor einigen Tagen bereits einen entsprechenden Beitrag diskutiert:

    http://www.c-plusplus.net/forum/320735

    Die benötigten Routinen für Windows werden dort verwendet.



  • Ach tut mir Leid!

    Habe mich von dem ersten C++ Begriff mitreissen lassen und nicht auf den Oberbegriff Frameworks geachtet.

    🙄


Log in to reply