Rahmen zeichnen lassen
-
Guten abend, ich möchte für mein Programm einen rahmen zeichnen lassen,
allerdings weiß ich wie unten zu sehen nicht mehr weiter wie ich das machen soll.Folgende bedingungen sollen gelten: es soll an allen 4 seiten der konsole jeweils ein kästchen freigehalten werden, sodass man praktisch den konsolen rahmen hat, dann eine luftige umrandung und dann mein gezeichneter rahmen....
char *spielbereich ( void ) { int y=0; int x=0; char *Option1=NULL, *Option2=NULL, *Kommando=NULL; STDIN_LEEREN; konsole_loeschen (); konsole_groesse (150,100); for (y=0;y<50;y++) { for(x=0;x<97;x++) { konsole_gehe_zu_XY(x,y); if(((x==2) && (y!=2) && (y!=50)) || /*hier weiss ich nicht weiter*/ printf("*"); } } }
vielen dank fürs Helfen
-
Drei Schleifen nacheinander:
Obere Linie zeichnen
Senkrechte Linien zeichnen
Untere Linie zeichnen.
-
ja ok ,aber wie sieht das konrekt in c aus, ich will einfach nicht drauf kommen......
-
char *spielbereich ( void ) { int y=0; int x=0; char *Option1=NULL, *Option2=NULL, *Kommando=NULL; STDIN_LEEREN; konsole_loeschen (); konsole_groesse (150,100); for (y=0;y<100;y++) { for(x=0;x<150;x++) { konsole_gehe_zu_XY(x,y); if(((x==2) && (y!=2) && (y!=50)) || /*hier find ich nicht die Loesung */printf("*"); } } }
so muss der code aussehen ,die zahlenwerte waren vorher falsch.....
-
etwas einfacher (weniger rechenaufwand) wäre es wie folgt:
//obere linie for(x=2;x<150;x++) { konsole_gehe_zu_xy(x,2); printf("*"); } //untere linie for(x=2;x<150;x++) { konsole_gehe_zu_xy(x,99); printf("*"); } //linke linie for(y=2;y<100;y++) { konsole_gehe_zu_xy(2,y); printf("*"); } //rechte linie for(y=2;y<100;y++) { konsole_gehe_zu_xy(149,y); printf("*"); }
voraussetzung dafür ist natürlich, daß der koordinatenursprung bei (1/1) liegt, wie es z.b. bei gotoxy() aus conio.h der fall ist. ansonsten muß das angepaßt werden.
-
Also wenn schon einfacher, dann:
//obere und untere linie for(x=2;x<150;x++) { konsole_gehe_zu_xy(x,2); printf("*"); konsole_gehe_zu_xy(x,99); printf("*"); } //rechte und linke linie for(y=2;y<100;y++) { konsole_gehe_zu_xy(2,y); printf("*"); konsole_gehe_zu_xy(149,y); printf("*"); }
-
Ich hätte das jetzt in obere und unter Linie aufgeteilt, damit man auf das gehe_xy verzichten kann (der Cursor wird ka eine Spalte (x) weitergestellt)
Und für einzelne Zeichen sollte man
putchar()
nehmen. Das ist wesentlich schneller (oder der Compiler ist so schlau und macht das).
-
vielen dank euch ^^