2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
275
275
EMPFEHLEN
-
Hallo
ich habe ein kleines spiel programmiert, um mein wissen zu testen da ich mir alles im selbstudium bebringe,
ja und nun spiele ich und manchmal sterbe ich so, aber wenn ich sterbe sind meine HP unter null, gut dann werder ich zurück ins menü zurück geworfen, aber was sehe ich meine hp sind immer noch unter null ich würde sie gerne wieder auf null zurück setzten
wie geht das bitte
hier ist mein programm ich hoffe mir reist jetzt keiner den kopf ab
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
#include <iostream> #include <conio.h> #include <cstdlib> #include <string> #include <ctime> using namespace std; //variable char name[30]; int Hp=100; int Geld=40; int Trank=1; //prototypen void name2(); void start(); void nimmTrank(); void kaufTrank(); void wald(); void checkgeldfortrank(); int main() { char Menü; do { cout<<string (8,'\n'); cout<<string (3,'\t')<<"<S>piel Starten"<<endl; //noch bearbeiten cout<<string (3,'\t')<<"<N>ame deines Helden"<<endl; //bearbeitet cout<<string (3,'\t')<<"<O>tionen"<<endl; //noch bearbeiten cout<<string (3,'\t')<<"<B>eenden des Spieles"<<endl; //noch bearbeiten cin>>Menü; switch (Menü) { case ('s'): case ('S'): { start(); }break; case ('o'): case ('O'): { cout<<"Optionen"; }break; case ('N'): case ('n'): { getchar(); //warum muss das da Rein? name2(); } break; case ('B'): case ('b'): { cout<<"Spiel Beendet jetzt"; }break; default: { }break; } }while ( Menü != 'b' && Menü != 'B'); system("pause"); return 0; } void name2 () { char ch=0; do { system("cls"); cout <<string(7,'\n'); cout <<string(3,'\t'); cout<<"Wie lautet dein Name?\n"<<string(3,'\t'); cin.get (name,30); cout <<string(2,'\n'); cout <<string(3,'\t'); cout<<"ist dein name \n\n"<<string(3,'\t')<<name<< " ? \n\n " <<string(3,'\t') << "<J>a oder <N>nein"<<endl; cin.get(ch); cin.clear(); cin.get(ch); // damit die eingabe forderung umgangen wird (\n oder endl) }while (ch != 'j' && ch != 'J'); system("cls"); } void start() { char game; do { system("cls"); cout<<"\n\n\t\tHallo "<<name<<" viel Spass\n"; cout<<"\n\tDeine HP: "<< Hp << "\tDeine Taler: " << Geld << "\tDeine Traenke: "<< Trank; cout<<"\n\twas willst du tun?"; cout<<string (2,'\n'); cout<<string (3,'\t')<<"<1>Trank nehmen"<<endl; cout<<string (3,'\t')<<"<2>In den Laden gehen"<<endl; cout<<string (3,'\t')<<"<3>In den Wald gehen"<<endl; cout<<string (3,'\t')<<"<4>In die Ruinen gehen"<<endl; cin>>game; switch (game) { case ('1')://tränke { }break; case ('2')://laden { }break; case ('3')://wald { }break; case ('4')://ruine { }break; } if (game=='1') //trank { nimmTrank(); } if (game=='2') //laden { kaufTrank(); } if (game=='3') //wald { wald(); } if (game=='4') //ruine { } getchar(); } while (Hp > 0); } void nimmTrank() { if (Trank > 0) { cout<<"Du fühst dich jetzt schon viel besser\n"; Trank-=1; Hp+=30; } else if (Trank <= 0) { cout<<"nein"; } getchar(); } void kaufTrank() { char ch=0; do { cout << "\n\n\tWillkommen im Trankladen\n"; cout << "Hier Kannst du Traenke kaufen ein \ntrank kostet 40 taler und heilt 30 Hp Willst du ein tank kaufen**** \n <j>a oder <N>ein\n"; cin.get(ch); cin>>ch; switch (ch) case ('j'): { } if (ch=='j') { checkgeldfortrank(); getchar(); }break; }while (ch != 'j' && ch != 'J'); } void wald() { char aktion; int zuMIN=33; int zuMAX=66; int zuDIFF = zuMAX-zuMIN; srand((unsigned int)time (0)); int monHP= zuMIN + (rand () %zuDIFF+1); system("cls"); cout<<"OH nein da ist ein Monster es will Dich ankreifen!!\n"; do { cout<< "Das Monster hat "<< monHP<<"Lebenspunkte!!\n\n"; cout<<"Machen einen Aktion\n"; cout<<"<1>Schlag"<<endl; cout<<"<2>Treten"<<endl; cout<<"<3>Kopfnuss"<<endl; cout<<"<4>Wegrennen"<<endl; cin>>aktion; switch (aktion) { case ('1'): case ('2'): case ('3'): { int zuMIN2=7; int zuMAX2=19; int zuDIFF2 = zuMAX2-zuMIN2; int youDMG= zuMIN2 + (rand () %zuDIFF2+1); int zuMIN1=5; int zuMAX1=12; int zuDIFF1 = zuMAX1-zuMIN1; int monDMG= zuMIN1 + (rand () %zuDIFF1+1); system("cls"); cout<<"\nDas Monster hat noch >>>> "<<monHP<<" Lebenspunkte"<<endl; cout<<"Du fuehrst eine Atacke aus, die "<< youDMG<<"schaden macht\n"; monHP=monHP-youDMG; cout<<"Oh Nein jetzt kreift das monster an!\n"; cout<<"und es macht genau "<<monDMG<<" Schaden!\n"; Hp-=monDMG; cout<<"du hast jetzt noch " << Hp <<endl; getchar(); if (monHP < 1) { cout<<"du hast das monster besiegt.\nund du bekommst als belohnung 30 taler "; Geld+=30; } }break; case ('4'): { cout<<"warum weg?"; getchar(); }break; } }while (aktion != '4' && monHP > 1 && Hp > 1); } void checkgeldfortrank() { int trankgeld =40; if (Geld >= trankgeld) { Trank+=1; Geld-=30; cout <<"Hier bitte ist ein Trank für dich"; } else if (Geld < trankgeld) { cout <<"OH, Leider hast du nicht genug Taler!"; } }
so das prgramm ist noch net 100%ig ferdig fehlen noch feinheiten
was geht nicht
wenn ich verlierre ''reseten'' meine HP nicht
und vieleicht ich würde gerne int HP=100 auf ein maximal wert einstellen (also wenn ich ein trank nehme das ich nicht mehr als 100 lebnspunkte habe
wenn ihr mir helfen würde wäre ich sehr glücklich
und ich bedanke mich eurer ronny
-
Hi
am Beispiel HP:
Statt
machst du nurCode cpp:1
int Hp=100;
und dafür die Wertzuweisung vor dem Menü, aber in der do-while-Schleife.Code cpp:1
int Hp;
Also
Code cpp:1 2 3 4 5 6 7 8 9 10
int main() { char Menü; do { Hp = 100; cout<<string (8,'\n'); cout<<string (3,'\t')<<"<S>piel Starten"<<endl; ...
Noch ein paar Tipps zum Programmierstil:
Globale Variablen vermeiden.
Mehr auf Zeileneinrückungen achten.
Variablennamen nicht mit großen Anfangsbuchstaben.
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
ah do while dachte ich mir schon aber mir fällt keine bedingung ein
und da gehts auch nichts anderes ? (ok dann werde ich mir die whill schleifen durch lesen
)
(zu deinen tipps: (erst mal danke)
mit den zeilen einrückungen bin ich voll deiner meinung
und mit der groß und kleinschreibung das ist von programmierer zu programmierer unterschiedlich (zumindest sagen das zwei autoren deren bücher ich lese)
und warum keiner globalen varialbeln ich meine ok lokale sind besser die kann ich in jeden block schreiben aber global kann ich in jeden block verwenden (wenn ich jetzt richtig gelsen habe wäre eine alternative wäre zeiger oder?)
edit:
äh ich hatte je schon ne schleif ich depp
ja ich hab den wert jetzt IN die schleife geschriebn und jetzt klapp es mit resten
Geändert von sheel (21.12.11 um 19:33 Uhr) Grund: Doppel
-
Warum Bedingung, Schleifen durchlesen...?

Du brauchst da keine zusätzliche Schleife.
Du sollst nur unter dem do einer Schleife einen anderen Code hinschreiben, siehe oben.
Zur Groß-/Kleinschreibung:
Prinzipiell ist es in C/C++ schon egal, aber bestimmte Schreibweisen haben sich eingebürgert.
Und wenn man dann mit anderen Programmierern an einem Projekt arbeitet, wird erwartet,
dass alle das gleiche Schreibsystem verwenden. Wenn jeder irgendwas macht,
geht die Zusammenarbeit schwer.
Häufig findet man zB. "dasIstMeineFunktion",
also alles außer dem ersten Wort mit großen Anfangsbuchstaben.
In zB. Java ist das Ganze noch strenger als in C,
dort jammert nämlich sogar der Compiler, dass Klassennamen groß beginnen müssen usw.
Zu den globalen Variablen: Alternative wären einfach Parameter:
Und ja, manchmal braucht man dann auch Zeiger, wo mit globalen Variablen keine nötig waren.Code cpp:1
int funktion(int a, int b){...}
Der Grund für diese scheinbare Verkomplizierung:
Einmal geschriebene Funktionen kann man problemlos auch in anderen Programmen weiterverwenden. Wenn sie sich auf glob. Variablen verlassen, ist das je nach Programmgröße schwierig bis unmöglich, ohne die Funktion ändern zu müssen. Das dauert länger, ist ein Fehlerrisiko,
...und wenns kommerziell ist wirds durch die verlängerte Dauer auch teurer
und ärgert die Kunden. Schlecht.
Und bitte Netiquette 15 beachten.
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Da möchte ich doch noch was anmerken:
Grade in C/C++, Variablen IMMER auf irgendeinen Wert setzen. Es sollte sich immer ein halbwegs vernünftiger Default finden lassen.
Sonst läuft man garantiert irgendwann in einen undefinierten Wert. Meistens dann, wenn man nicht damit rechnet.
Ähnliche Themen
-
getResource gibt null zurück
Von Romsl im Forum JavaAntworten: 4Letzter Beitrag: 30.03.08, 16:08 -
image.getHeight(null) gibt immer -1 zurück?
Von Layna im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 20.06.07, 12:56 -
Eigenschaft gibt NULL zurück
Von Briefkasten im Forum PHPAntworten: 2Letzter Beitrag: 31.12.06, 13:20 -
NULL oder NOT NULL ****?
Von KingChimera im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 24.08.03, 09:32 -
Null
Von Wolfsbein im Forum PHPAntworten: 10Letzter Beitrag: 21.05.03, 21:49





Zitieren

Login






