bermuda Spiel c++
-
Könnte mir jemand vllt. sagen wo hier der Fehler ist:
#include <iostream> using namespace std; const int X=9; const int Y=7; int main () { char Spielfeld [X] [Y]; int x, y; char cx, cy; for (x=0; x<X;x++) { for (y=0; y<Y; y++) { Spielfeld [x] [y] = '.'; } } bool SchleifenEnde=false; int xin, yin; do { cout << " 1 2 3 4 5 6 7 8 9"<< endl; for(y=0; y<Y; y++) { cout << (char)('A'+y) << " "; for (x=0; x<X; x++) { cout << " "<<Spielfeld[x] [y]; } cout << endl; } cin >> cx >> cy; xin = cx - '1'; yin = cy - 'A'; if (xin>=0 && xin<9 && yin >=0 && yin<7) { Spielfeld [xin][yin] = 'x'; } else { SchleifenEnde=true; } while (!SchleifenEnde); } return 0; }Danke schonmal im vorraus für die Antworten.
-
Da
-
Zeile 49/50 sieht auf den ersten Blick falsch aus.
Zum Glück haste so ordentlich eingerückt, daß man es gleich sieht.
-
ich habs
-
Ich versteh eine Sache nicht ganz, und zwar wie die Buchstaben (y Koordinate) zu stande kommen.
Ich weiss es hat was mit :
for (y=0; y<Y; y++) { cout << (char)('A'+y) << " "; }Doch verstehen tuh ich das nicht ganz könnte das mir jmd vllt erklären?
-
'A' = 65
'B' = 66
'C' = 67
...Google mal nach ASCII-Tabelle
-
> Voraus <<< !
*klugscheiß-modus aus*
-
eine sache ist mir unklar das wurde nicht in meinem buch erwähnt und zwar das
(char)
-
Das ist ein (C-style) cast in einen char. Das bewirkt, dass ein Zeichen und keine Zahl ausgegeben wird.
Es wird also eine andere Funktion / ein anderer operator<< aufgerufen.
Denn operator<< ist überladen für verschiedene Parametertypen.Beispiel:
void func (char c) { std::cout << "func (char)"; } void func (int i) { std::cout << "func (int)"; } int main() { func (48); // ruft func(int) auf func ((char)48); // wandelt 48 von int zu char um (ruft also func(char) auf) func ('A'); // ruft func(char) auf }Weitere casts (eingeführt durch C++):
static_cast <ThemenverwandT> (Var)
const_cast <T> (Var)
reinterpret_cast <T*> (&Var)
dynamic_cast <T*> (&Var)Das kommt vielleicht später. casts sind jetzt nicht das was man einem Anfänger als erstes zeigen sollte. Ich caste so gut wie nie.
EDIT: Überladung und Operatorüberladung kommt vermutlich auch irgendwo weiter hinten.