Konsolen Oberfläche

bi0h4zard

Grünschnabel
Hi,

ich möchte in der Konsole eine Art graphische Oberfläche erzeugen, die aber nur aus Zeichen bzw. Buchstaben bestehen soll. Leider hab ich keinen blassen Schimmer wie ich das bewerkstelligen soll. Am Ende sollte das ganze dann in etwa so aussehen:

****************************************************
****************************************************
*************@************************************
****************************************************
****************************************************

wobei das @ dann z.B. mit den Pfeiltasten frei auf dem Feld beweglich sein soll.

thx im vorraus
 
Zuletzt bearbeitet:
îch würde es so nach dem moto machen:
C++:
#include <iostream>
using namespace std;

main(){
char Richtung = '';
  cout << "*************************************************\n*****************************************\n\
***************************************\n********@************************\n";  
Richtung = cin.get();
  switch(Richtung){
    case(/*hier der ASCII wert einer pfeiltasten*/):
       //hier jetzt die Console sauberwischen mit system("CLS");
       //mit gotoxy an die richtige stelle springen
       //neue ausgabe
       return;
   case(/*mit den anderen tasten*/)
   default:
     return 0;
   }
}
noch ne endlosschleife drum nach gotoxy musste mal hier im Forum suchen so als ganz grober Roh-Entwurf, weiß auch nicht, ob ich switch und case noch richtig im Kopf habe
 
Zuletzt bearbeitet von einem Moderator:
Ich rate von dem Systemaufruf ab!
Und für gotoxy musste dich entscheiden welchen weg du gehen willst:
windows.h
oder
conio.h hier gibt es dann auch clrscr() als Funktion!

Gruß XeoX
 
Da der System aufruf nur unter dem Entsprechenden Betriebsystem zum tragen kommt!

Und das macht keinen schönen Code aus, Bibl. geben einige Funktionen schon vor wie conio.h mit clrscr()!

Gruß XeoX
 
Hab mal in meiner alten Code Sammlung gesucht vielleicht hilft dir das weiter!

C:
#include <stdio.h>
#include <conio.h>

#define breite 25
#define hoehe  12
#define figur  "T"
#define spielflaeche "_"

void spielfeld();
void bewegung();
int main (){
  char dummy[81];
  spielfeld();
  bewegung();
  return 0;
}

void spielfeld() {
  int hi, bi;
  for (hi=0; hi < hoehe+1; hi++){
    for (bi = 0; bi < breite; bi++)
      if(hi != hoehe) printf(spielflaeche);
        else printf("#");
    printf("#\n");
  }
}

void bewegung (){
  unsigned int taste;
  gotoxy(breite/2, hoehe/2);
  printf(figur);
  gotoxy(wherex()-1, wherey());
  do {
    taste = getch();
    fflush(stdin);
    switch (taste){

      case  97 : printf(spielflaeche);  gotoxy(wherex()-1, wherey());
        if(wherex() >= 2 &&  wherey() <= hoehe){
          gotoxy(wherex()-1, wherey()); printf(figur); gotoxy(wherex()-1, wherey()); break;
        } else  if(wherex() == 1 && wherey() == 1){
                  gotoxy(breite, wherey()); printf(figur); gotoxy(wherex()-1, wherey()); break;}
                else {gotoxy(breite, wherey()); printf(figur); gotoxy(breite, wherey()); break;}
        
      case 100 : printf(spielflaeche); gotoxy(wherex()-1, wherey());
        if(wherex() < breite && wherey() <= hoehe){
           gotoxy(wherex()+1, wherey()); printf(figur); gotoxy(wherex()-1, wherey()); break;
        } else  if(wherex() == breite && wherey() == hoehe){
                  gotoxy(1, wherey()); printf(figur); gotoxy(wherex()-1, wherey()); break;}
                else{gotoxy(1, wherey()); printf(figur); gotoxy(wherex()-1, wherey()); break;}

      case 119 : printf(spielflaeche);
        if(wherex() > 1 && wherey() > 1){
           gotoxy(wherex()-1, wherey()-1); printf(figur); gotoxy(wherex()-1, wherey()); break;
        } else {gotoxy(wherex()-1, hoehe); printf(figur); gotoxy(wherex()-1, wherey()); break;}

      case 115 : printf(spielflaeche);
        if(wherex() >= 1 && wherey() < hoehe){
          gotoxy(wherex()-1, wherey()+1); printf(figur); gotoxy(wherex()-1, wherey()); break;
        } else {gotoxy(wherex()-1, 1); printf(figur); gotoxy(wherex()-1, wherey()); break;}
    } 
  } while (taste != 101);
}

Gruß XeoX
 
Zuletzt bearbeitet:
Noch ne frage: Gibt es einen Befehl mit dem man herausfinden kann welches Zeichen an der aktuellen Cursorposition steht?
 
Zuletzt bearbeitet:
Meinst du den Punkt in der ASCII Tabelle, oder in der Konsole?
Falls du die ASCII Tabelle meinst sollte folgender Code dir helfen:
C++:
#include <iostream>
using namespace std;

int main(){
  char input = '';
  
  cout << "Drücke die Taste deren ASCII Wert du wissen willst (Drücke ESC zum Beenden \n\n";
  while( input != 27 /*ist die Taste ESC*/){
    input = cin.get();
    cout << "Der ASCII Wert der Taste " << input << " ist: " << (int)input << endl;
  }
  return (int)input;
}
Falls du die Konole meinst habe ich keine Ahnung^^
 
Zuletzt bearbeitet von einem Moderator:
Zurück