Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

CodeBase

Treue Seele

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

51

28.04.2011, 11:03

@NachoMan
Ich danke dir übrigends für deine Kritiki und aregungen an mir, ich habe mich jetzt nochmal zum wichtig gewandt und lerne nochmal alles durch (ausser jetzt das Basiswissen) ich meine jetzt das mit den zeigern, klassen und refernzen.

52

30.04.2011, 18:49

Ich hab da ein Problem :
Wenn ich bei Multiplayer dann ,,r´´ tippe kommt bei mir gegen Roboter und dann einen Absatz Falsche eingabe aber bei ,,j´´ und ,,t´´ kommt das richtige heraus was habe ich falsch gemacht?



#include <iostream>
using namespace std;

int main ()
{
// Variablen
int Spieleranzahl; // Anzahl der Spieler
char chAuswahl; //Menüauswahl

// Anzahl der Mitspieler abfragen
cout << "Wie viele Mitspieler: ";
cin >> Spieleranzahl;

// Falsche Eingabe?
if ( Spieleranzahl ==0)
{
cout << "Falsche Eingabe" << endl;
}
// Singleplayer?
if (Spieleranzahl ==1)
{
cout << "Du spielst gegen den Computer" <<endl;
}
// Multiplayer?
else
{
cout << "Multiplayer-Spiel" <<endl <<endl;
cout << "(j)eder gegen jeden , (r)oboter oder (t)eamspiel: ";
cin >> chAuswahl;

// Jeder gegen jeden?
if (chAuswahl == 'j')
{
cout << "Jeder gegen jeden " << endl;
}
// gegen Roboter?
if (chAuswahl == 'r')
{
cout << "gegen Roboter " << endl;
}

// Teamspiel?
if (chAuswahl == 't')
{
cout << "Teamspiel " << endl;
}

// Falsch Eingabe?
else
{
cout << "Falsche Eingabe" << endl;
}
}
system ("pause");
return 0;

}

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

53

30.04.2011, 19:04

Du prüfst deine Bedingungen mittels if. Wenn die Bedingung true ist, wird der darauf folgende Block ausgeführt, wenn nicht evtl. der hinter dem Schlüsselwort else. Dabei spielen vorhergehende Bedingungen keine Rolle.
Du Prüfst:
if (chAuswahl == 'j'), -dann- ...
if (chAuswahl == 'r'), -dann- ...
if (chAuswahl == 't'), -dann- ...
- sonst (wenn chAuswahl != 't', also auch bei == j oder r) - ...

Das kannst du vermeiden, wenn du folgendes schreibst oder am besten, wenn du switch/case (mit default) verwendest:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (chAuswahl == 'j') // Jeder gegen jeden?
{
   cout << "Jeder gegen jeden " << endl;
}
else if (chAuswahl == 'r') // gegen Roboter?
{
   cout << "gegen Roboter " << endl;
}
else if (chAuswahl == 't') // Teamspiel?
{
   cout << "Teamspiel " << endl;
}
else // Falsch Eingabe?
{
   cout << "Falsche Eingabe" << endl;
}


P.S.: Bitte Code-Tags verwenden und richtig formatieren.

54

30.04.2011, 19:14

ok musste bei meinen auswahlen else davorschreiben also else if und dann am schluss nur else jetzt gehts danke dir

wie formatiere ich richtig? hab sowas noch nie gemacht^^

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

55

30.04.2011, 19:21

wie formatiere ich richtig? hab sowas noch nie gemacht

Nicht gut, du solltest halt eine einheitliche Syntax verwenden, wie z.B. Variablennamen auf Englisch oder Deutsch, aber nicht gemischt und am wichtigsten eingeschlossene Blöcke einrücken. Das erleichtert die Lesbarkeit enorm.

56

30.04.2011, 19:32

Hab variablennamen auf Deutsch und nicht gemischt und das mit den Blöcken habe ich erst vor kurzem gelernt muss das noc üben :)

57

30.04.2011, 19:33

bzw ich mach das genau so wie im Buch nur dass ich den code dann ein bisschen erweitere damit ich sehe was passiert wenn ich das und das mache :)

58

07.05.2011, 14:20

So bin bei den Arrays angekommen...

und verstehe diese Abschnitte nicht:

dabei muss man nur darauf achten, den richtigen datentyp zu verwenden. Ein float oder bool lässt sich logischerweise nicht als index gebrauchen, es muss sich also auf jeden Fall um einen ganzzahligen Datentyp handeln.

Die Größe, die das Array haben soll gibt man ja innerhalb der eckigen klammern an. Dieser Wert darf allerdings nich variabel(was heißt das eig?) sein. Dagegen ist es ohne weiteres möglich, eine Konstante, die mit const oder #define erzeugt wurde,einzusetzen.

Kann mir das evt jemand erklären?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

59

07.05.2011, 14:29

Das heißt, dass die größe zur Kompilierzeit festehen muss.
Du kannst zum Beispiel nicht den User fragen wie groß das Array sein soll und dann die Eingabe dafür nutzen.
Du kannst aber Konstanten also zum Beispiel "const int arraygroesse = 20;" verwenden. Das hat den vorteil, dass man die Arraygröße zentral steuern kann(falls man mehrere solcher Arrays benötigst)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

60

07.05.2011, 14:34

Danke erstmal

ok aber das mit const versteh ich immrnoch nicht so ganz

Werbeanzeige