Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
12.08.2001, 17:52
Executioner



also ich hab mal von nen prog zu machn (ein ganz simples) für d2

so man soll hier auswählen können:

-den akt
-und dann die entsprechenden monster

so also akt kann ich auswählen! nur wenn ich einfach bei "akt wählen" 5 eingebe, werd ich gleich nach den monstern gefragt, is ja richtig!
so aba wenn ich da z.b. 1 (also für Blabla *g*) steht dann da:

-------------------
Blabla
Akt5
-------------------

da sollte aber nich passieren!, weil ich für den 5. akt ja neue monster angeben will! (z.b. monster nr. 0 -> sklave)

wie kann ich das einstellen, und was hab ich falsch gemacht???

thx

so hier der source:

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{

const float AKT=0;
float akt;
cout<<"Bitte geben Sie den Akt ein: ";
cin>>akt;
if(akt==1)
cout<<"Akt1
- Fallen=0
- Blabla=1 "<<endl;

const float MONSTER=0;
float monster;
cout<<"Bitte geben Sie ein Monster ein: ";
cin>>monster;

if(monster==0)
cout<<"Fallen"<<endl;

if(monster==1)
cout<<"BlaBla"<<endl;

if(akt==2)
cout<<"Akt2"<<endl;

if(akt==3)
cout<<"Akt3"<<endl;

if(akt==4)
cout<<"Akt4"<<endl;

if(akt==5)
cout<<"Akt5"<<endl;

getchar ();
return 0;
};

--

www.virus-mod.de.vu <- die neue Mod, zur Vorgeschichte von Half-Life (*lol* steht noch nich in der Story auf der Hp ... is eben noch nich formuliert)

zum Seitenanfang zum Seitenende Profil || Suche
001
12.08.2001, 18:22
Archangel



hmm?!?!
ich weiß nit ob ich das jetzt richtig verstanden habe, aber benutz doch ein zweidimensionales char *-array..
das initialisierst du dann zB so:
char *monsters[][5] = {
{ "Fallen", "bla", "blub" }, // Akt1
{ "blop", "undnocheinakt2monster", "undnocheins" }, // Akt 2
...
{ "Sklave", "blabla", "blublub" } // Akt 5
}

und greifst dann mit monsters[monster][akt-1] darauf zu... ich weiß nich ob ich alles verstanden habe..
aber warum initialisierst du monster und akt als float? warum nicht als int? und was bringen die deklarationen const float MONSTER und const float AKT?

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005


Dieser Beitrag wurde am 12.08.2001 um 18:23 von Archangel bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
12.08.2001, 20:10
Son-Goten



so,ich hoffe, mein comment ist richtig ;)

also.. das ganze ist ein dos-fenster, richtig? ;) und selbst ich versteh den code, mit ausnahme von diesem hier -->#include <stdio.h>
#include <stdlib.h> <-- (aber egal, hab ja nicht behauptet, c++ zu können... ;) )

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{

const float AKT=0; <--- wie schon von Archangel gesagt.. was soll das?
float akt;
cout<<"Bitte geben Sie den Akt ein: ";
cin>>akt;
if(akt==1)
cout<<"Akt1
- Fallen=0
- Blabla=1 "<<endl;

const float MONSTER=0; <--- s.o.
float monster;
cout<<"Bitte geben Sie ein Monster ein: ";
cin>>monster;

if(monster==0)
cout<<"Fallen"<<endl;

if(monster==1)
cout<<"BlaBla"<<endl;

---soweit ja klar... allerdings hat dies hier nichts mit deiner auswahl weiter oben (dem akt) zu tun... es bezieht sich einfach auf alle akte...

wenn du wirklich das problem hast, dass dir diese beiden monster in allen akten angeboten werden, versuch mal dies hier... :

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{

float akt;
float monster;

cout<<"Bitte geben Sie den Akt ein: ";
cin>>akt;
if(akt==1)
{
cout<<"Akt1
- Fallen=0
- Blabla=1 "<<endl;

cout<<"Bitte geben Sie ein Monster ein: ";
cin>>monster;

if(monster==0)
cout<<"Fallen"<<endl;

if(monster==1)
cout<<"BlaBla"<<endl;
}

if(akt==2)
{
cout<<"Akt2
- Fallen2=0
- Blabla2=1 "<<endl;

cout<<"Bitte geben Sie ein Monster ein: ";
cin>>monster;

if(monster==0)
cout<<"Fallen2"<<endl;

if(monster==1)
cout<<"BlaBla2"<<endl;
}

//und so weiter und sofort....

if(akt==3)
cout<<"Akt3"<<endl;

if(akt==4)
cout<<"Akt4"<<endl;

if(akt==5)
cout<<"Akt5"<<endl;

getchar ();
return 0;
};

das ist allerdings -glaub ich- mehr als unsauber... sauberer ist das hier (hoffe ich zumindest)

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{

float akt;
float monster;

cout<<"Bitte geben Sie den Akt ein: ";
cin>>akt;
if(akt==1)
cout<<"Akt1
- Fallen=0
- Blabla=1 "<<endl;

if(akt==2)
cout<<"Akt2"<<endl;

if(akt==3)
cout<<"Akt3"<<endl;

if(akt==4)
cout<<"Akt4"<<endl;

if(akt==5)
cout<<"Akt5"<<endl;

cout<<"Bitte geben Sie ein Monster ein: ";
cin>>monster;

if(akt==1)
{
if (monster==0)
cout<<"Fallen"<<endl;

if(monster==1)
cout<<"BlaBla"<<endl;
}

if(akt==2)
{
if (monster==0)
cout<<"Fallen2"<<endl;

if(monster==1)
cout<<"BlaBla2"<<endl;
}

if(akt==3)
{
if (monster==0)
cout<<"Fallen3"<<endl;

if(monster==1)
cout<<"BlaBla3"<<endl;
}

if(akt==4)
{
if (monster==0)
cout<<"Fallen4"<<endl;

if(monster==1)
cout<<"BlaBla4"<<endl;
}

if(akt==5)
{
if (monster==0)
cout<<"Fallen5"<<endl;

if(monster==1)
cout<<"BlaBla5"<<endl;
}

getchar ();
return 0;
};

so..beides funktioniert..ich hoffe, die antwort hier hat dir geholfen.. kann natürlich sein, dass du was anderes meintest... glaub ich allerdings weniger ;)

mfg
goten

--

zum Seitenanfang zum Seitenende Profil || Suche
003
18.08.2001, 13:21
static_caster



...wenn man da jetzt noch switch() benutzt, wirds sogar übersichtlich!!! :-)

--

zum Seitenanfang zum Seitenende Profil || Suche
004
18.08.2001, 18:53
Mazze



Man könnte ja auch so machen:

if(akt <= 5)
{
sprintf(sz, "Akt%i", akt);
cout << sz << endl;
}

Ist ein "bisschen" kürzer....

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche