Array
-
for(int spalten=0;spalten<10;spalten++) { for(int zeilen=0;zeilen<10;zeilen++) { feld[zeilen][spalten]=0; feld[zeilen][spalten]=zeilen+1; gotoxy(22+zeilen*4,5+spalten*2); cout<<feld[zeilen][spalten]; } } for(int spalten=0;spalten<10;spalten++) { for(int zeilen=0;zeilen<10;zeilen++) { feld[zeilen][spalten]=10; gotoxy(58,5+spalten*2); cout<<feld[zeilen][spalten]; } } do { cout<<endl<<endl<<endl; cout<<"Wieviel Kinokarten wollen Sie?"; textcolor(RED); cout<<" (max.4)"; textcolor(LIGHTGRAY); cout<<" => "; cin>>kinokarten; } while(kinokarten<1 || kinokarten>4); do { cout<<"Bitte w\x84hlen Sie das Kino"; textcolor(RED); cout<<" (4)"; textcolor(LIGHTGRAY); cout<<" => "; cin>>kino; } while(kino>4 || kino<4); cout<<"Bitte w\x84hlen Sie die Sitzreihe"; textcolor(RED); cout<<" (A-J)"; textcolor(LIGHTGRAY); cout<<" => "; cin>>sitzreihe; do { cout<<"Bitte w\x84hlen Sie den Sitzplatz"; textcolor(RED); cout<<" (1-10)"; textcolor(LIGHTGRAY); cout<<" => "; cin>>sitzplatz; } while(sitzplatz<1 || sitzplatz>10); cout<<"Kinotag?"; textcolor(RED); cout<<" (j/n)"; textcolor(LIGHTGRAY); cout<<" => "; cin>>kinotag; for(int spalten=0;spalten<10;spalten++) { for(int zeilen=0;zeilen<10;zeilen++) { feld[zeilen][spalten]=0; feld[zeilen][spalten]=zeilen+1; gotoxy(22+zeilen*4,5+spalten*2); if((spalten == sitzplatz-1) && (zeilen == sitzreihe-1)) { textcolor(LIGHTRED); cout<<feld[zeilen][spalten]; textcolor(LIGHTGRAY); } else { textcolor(LIGHTGRAY); cout<<feld[zeilen][spalten]; } } } for(int spalten=0;spalten<10;spalten++) { for(int zeilen=0;zeilen<10;zeilen++) { feld[zeilen][spalten]=10; gotoxy(58,5+spalten*2); if((spalten == sitzplatz-1) && (zeilen == sitzreihe-1)) { textcolor(LIGHTRED); cout<<feld[zeilen][spalten]; textcolor(LIGHTGRAY); } else { textcolor(LIGHTGRAY); cout<<feld[zeilen][spalten]; } } }
-
Das ist vielleicht nicht allzu effektiv, aber du kannst ja auch zwei weitere Arrays deklarieren (eins für die Sitzreihe und eines für den Sitzplatz). Beide Arrays haben dann die Anzahl von Elementen, die der Gesamtanzahl von Sitzen entspricht.
#define ANZAHL_SITZPLAETZE ((10 + 1) * (10 + 1) + (10 + 1)) // [...] int iRSitzreihen [ANZAHL_SITZPLAETZE] ; // R für reserviert int iRSitzplaetze [ANZAHL_SITZPLAETZE] ; // [...]
Eine Schleife in der die schon reservierten Plätze markiert werden, würde dann so aussehen.
// [...] for(i = 0 ; i <= (kinokarten - 1) ; i++) { if((spalten == iRSitzplaetze[i]) && (zeilen == iRSitzreihen[i])) { textcolor(LIGHTRED); cout<<feld[zeilen][spalten]; textcolor(LIGHTGRAY); } else cout<<feld[zeilen][spalten]; } // [...]
-
danke für den beitrag aber ich glaube wir verstehen uns immer noch nicht.
die sitzreihe wird als buchstaben(a-j) und der sitzplatz von 1-10 eingebgeben.
-
WilMen schrieb:
Hallo C_Style,
// [...] system("CLS") ; // Bildschirminhalt löschen
system (""); ist böse. Wenn ihr eine saubere Funktion braucht, die den Bildschirminhalt löscht, dann inkludiert conio.h und die Funktion zum löschen lautet ' clrscr (); ' oder ihr könnt euch eine eigene Funktion erstellen mit diesem Code:
void clear(void) { COORD coordScreen = { 0, 0 }; DWORD cCharsWritten; DWORD dwConSize; HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO csbi; GetConsoleScreenBufferInfo(hCon, &csbi); dwConSize = csbi.dwSize.X * csbi.dwSize.Y; FillConsoleOutputCharacter(hCon, TEXT(' '), dwConSize, coordScreen, &cCharsWritten); GetConsoleScreenBufferInfo(hCon, &csbi); FillConsoleOutputAttribute(hCon, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten); SetConsoleCursorPosition(hCon, coordScreen); }
So wird die Löschfunktion clear(); nachher heißen.
Ist alles ein einfach Tipp von mir.
-
Wenn ihr eine saubere Funktion braucht, die den Bildschirminhalt löscht, dann inkludiert conio.h und die Funktion zum löschen lautet ' clrscr (); '
...das würde ich generell nicht empfehlen. Denn mit den meisten Compilerauslieferungen ist 'clrscr ()' in der conio.h nicht mehr deklariert. Zu empfehlen wären sonst Escapesequenzen oder, wenn die Plattformunabhängigkeit keine Rolle spielt, die obige Lösung mit der API.
Mfg mikey.
-
Wenn du dich nicht darum kümmern willst, sondern einfach schnell und einfach die Farbe wechseln möchtest: http://ic.c-plusplus.net
@mikey: Escapesequenzen sind genausowenig plattformunabhängig.
MfG SideWinder
-
Das schriebst, dass man die Sitzplaetze in Zahlen von 1-10 und die Sitzreihe von A-J eingeben soll. Du hast aber "Feld" eindeutig als Integer-Array deklariert. Du weißt doch sicherlich, dass man Integer-Variablen nicht mit Buchstaben initialisieren kann? Oder habe ich dort etwas falsch verstanden?
-
WilMen schrieb:
Du weißt doch sicherlich, dass man Integer-Variablen nicht mit Buchstaben initialisieren kann? Oder habe ich dort etwas falsch verstanden?
Klar kann man das. Nur wird vermutlich nicht das herauskommen, was du erwartest
(char ist ein ganz gewöhnlicher Ganzzahltyp, der nur von deiner Programmlogik als ASCII-Zeichen interpretiert wird)
-
SideWinder schrieb:
@mikey: Escapesequenzen sind genausowenig plattformunabhängig.
Das heist, Escapesequenzen sind platformabhängig ? Auch Zeilenumbrüche, Tabs, etc. ?!
@ WilMen: GB @ cpp-world.de thx
MfG mikey.
-
mikey schrieb:
SideWinder schrieb:
@mikey: Escapesequenzen sind genausowenig plattformunabhängig.
Das heist, Escapesequenzen sind platformabhängig ? Auch Zeilenumbrüche, Tabs, etc. ?!
Die nicht, aber diese ESC[... Codes zur ansteuerung der Konsole, die du oben vorgeschlagen hast.
-
Okay danke, wieder was dazugelernt.
-
Ich glaube ich versteh endlich was ihr mir sagen wolltet, ich habe nicht besonders nachgedacht als ihr mir die vielen infos geschrieben habt.
Aber jetzt weiß ich wie ich das mache.Bedank mich herlich bei euch