[Gelöst]For Schleife?
-
Also das stimmt irgendwie nicht, weil ich hab ja meine Arrays feld[1] bis feld[100] jedes dieser felder ist mit a1 a2 a3 a4 usw. gefüllt.
-> jetzt brauch ich ein neuen wert um |_| auszugebenalso eher
for(i=1, i<=100, i++)
{
cout << |_| << endl;
}Besser ?
-
Nö. Das würde dir alle Elemente untereinander ausgeben, da du hinter jedem einen Zeilenumbruch ausgibst. Du willst aber immer 10 hintereinander in einer Zeile ausgeben (eventuell mit Leerzeichen getrennt), dann einen Zeilenumbruch und dann wieder 10 usw.
Vorschlag: nicht raten, sondern lieber ausprobieren. Dann hättest du ja direkt gesehen, dass das so nicht funktioniert.
Mach doch erst mal eine Zeile. Wenn die funktioniert, machen wir weiter.
EDIT: Und du solltest auch bei feld[0] anfangen, nicht feld[1].
-
hab jetzt einbisschen im Internet rumgeschaut und hab nach einiger zeit etwas zusammen gestellt was wirklich funktioniert !!!
int main() { for(int i=0; i<10; i++) { char z = 0x41 + i; // 'A' .. 'J' for(int j=0; j<10;j++) { feld[i*10+j] = " "; char s = 0x30 + j; // '0'..'9' feld[i*10+j][0] = z; feld[i*10+j][1] = s; } } for(int i=0; i<10; i++) { for(int j=0; j<10;j++) { char zeilenende = (j==9) ? '\n': ' '; cout << "|" << feld[i*10+j] << "|" << zeilenende; } } getch(); }
-
Gratulation! Du wärst aber sicher auch selbst drauf gekommen. Sich aus dem Internet was zusammenzubasteln ist meist nicht der beste Weg, um zu lernen (man neigt dazu, das Gebastelte so hinzunehmen und es nicht vollständig zu verstehen).
-
Verstanden hab ich es
Und ich lerne meist eh besser, wenn ich es schon mal gesehen hab
-
Ich habe davon jetzt eine Klasse Spielfeld erstellt und die in die Main-Seite "included" xD
Ich hab das Problem das er das Programm zwar startet, aber sofort weider schließt,
habe versucht das Problem mit getch(); zu löschen
-> konsolenfenster ist schwarzHabe ich etwas nicht richtig eingebunden ?!
#include <iostream> #include <conio.h> #include "Spieler.h" #include "Spielfeld.h" #include "Schiffe.h" using namespace std; int main() { Spielfeld draw(); cout << "main" << endl; getch(); }
-
Mach noch ein "stdout::flush()"
-
meinhana schrieb:
habe versucht das Problem mit getch(); zu löschen
-> konsolenfenster ist schwarzDas "main" sollte aber eigentlich dastehen.
Siehe Kommentare:
#include <iostream> #include <conio.h> #include "Spieler.h" #include "Spielfeld.h" #include "Schiffe.h" using namespace std; int main() { Spielfeld draw(); // <-- Das deklariert eine Funktion draw()! cout << "main" << endl; getch(); }
// Variable: Spielfeld draw; Spielfeld draw(10); // falls es Konstruktorparameter gibt // Funktion: Spielfeld draw(); // ohne Parameter Spielfeld draw(int x); // mit Parametern
Ganz häufiger Fehler.
Jochen Kalmbach schrieb:
Mach noch ein "stdout::flush()"
Was soll das sein? Mal angenommen, du hast
cout << flush
gemeint, dann ist das imendl
schon drin.
-
Alsoo
Das "main" steht da auch, aber das was in der Funktion ist nicht
Hier der Quelltext von dem Spielfeld#include"Spielfeld.h" #include<iostream> #include<conio.h> #include<string> using namespace std; string feld[99]; void Spielfeld::draw() { cout <<"Schiffe versenken"<<endl; cout <<"Ihr Spielfeld:"<<endl; cout <<endl; for(int i=0; i<10; i++) { char z = 0x41 + i; // 'A' .. 'J' for(int j=0; j<10;j++) { feld[i*10+j] = " "; char s = 0x30 + j; // '0'..'9' feld[i*10+j][0] = z; feld[i*10+j][1] = s; } } for(int i=0; i<10; i++) { for(int j=0; j<10;j++) { char zeilenende = (j==9) ? '\n': ' '; cout << "|" << feld[i*10+j] << "|" << zeilenende; } } } //________________________________________________________________________________________ void Spielfeld::hilfe() { cout << "Es gibt 10 Schiffe." << endl; cout << "- ein Schlachtschiff (5 Kästchen)" <<endl; cout << "- zwei Kreuzer (je 4 Kästchen)" <<endl; cout << "- drei Zerstörer (je 3 Kästchen)" <<endl; cout << "- vier U-Boote (je 2 Kästchen)" <<endl; cout << "Schiffe duerfen nicht aneinander stoßen" <<endl <<endl; } //__________________________________________________________________________________________
Dazu die .h datei
#ifndef __SPIELFELD_H__ #define __SPIELFELD_H__ using namespace std; class Spielfeld { public: private: void draw(); void hilfe(); }; #endif
-
Ich musste ein Objekt (Instanz) der Klasse erzeugen
Das wusste ich nichtint main() { Spielfeld meinspiel; meinspiel.draw(); cout << "main" << endl; getch(); return 0; }