000
24.03.2010, 10:55 Uhr
Tjelfe
|
Moin, wollte mal fragen ob mir jemand weiterhelfen kann?
Ich will ein Kniffelspiel programieren, welches mit der funktion srand mit 5 Würfeln arbeitet, und diese dann jeweils an unterprogrammen weitergibt und dort weiter gewürfelt würd. Ich habe alles erstmal auf den ersten Würfel ausgelegt, und wollte nach dem der dritte Wurf vollbracht ist, die Würfel an main zurück geben.
nur bei der Rückgabe, geht er den zweiten und dritten wurf noch ein paar mal mehr durch als er soll, habe auch schon versucht mit Zeigern zu arbeiten, aber irgendwie bekomm ich es nicht hin, kann mir jemand weiterhelfen?
hier mal mein Quellcode:
C++: |
#include "stdafx.h" #include "iostream" #include "conio.h" #include "time.h" #include "windows.h"
using namespace std;
int einzel(int f_würfel1)
{ int i,f_würfel[5],f_anzahl_wurf,f_wahl;
system("cls"); cout<<"Behalten:"<<f_würfel1; cout<<endl; srand( time(NULL)); for(i=1; i<5; i++) { f_würfel[i]=(rand()%6)+1; cout <<i<<". Wuerfel: " << f_würfel[i] << endl; //2. Wurf mit 4 Würfel } do {
cout<<"\nWieviel Wuerfel wollen sie behalten? eingabe:"; cin>>f_anzahl_wurf; //Abfrage wieviel würfel man behalten möchte
if(f_anzahl_wurf>4) { cout<<"\nEingabe nur zwischen 0-4 moeglich!"; } } while(f_anzahl_wurf>4); //Anzahl darf nicht größer als 5 sein
switch(f_anzahl_wurf) //switch in Anzahl der würfe { case 0: ;break; case 1: do { cout<<"\nWelchen Weurfel wollen sie behalten? eingabe:"; cin>>f_wahl; if(f_wahl>4) { cout<<"Eingabe nur zwischen 1-4 möglich"; } } //ende der do Schleife wenn wahl zwischen 1-4 while(f_wahl>4);
system("cls");
switch(f_wahl) { case 1: cout<<"Behalten: "<<f_würfel1; cout<<"\nBehalten: "<<f_würfel[1]; cout<<endl; for(i=1; i<4; i++) //3. Wurf mit 3 Würfel { f_würfel[i]=(rand()%6)+1; cout <<i<<". Wuerfel: " << f_würfel[i] << endl; } do { cout<<"\nWieviel Wuerfel wollen sie behalten? eingabe:"; cin>>f_anzahl_wurf; //Abfrage wieviel würfel man behalten möchte
if(f_anzahl_wurf>3) { cout<<"\nEingabe nur zwischen 0-3 moeglich!"; } }
while(f_anzahl_wurf>3); //Anzahl darf nicht größer als 3 sein } switch(f_anzahl_wurf) //switch in Anzahl der würfel { case 0: ;break; case 1: do { cout<<"\nWelchen Weurfel wollen sie behalten? eingabe:"; cin>>f_wahl; if(f_wahl>3) { cout<<"Eingabe nur zwischen 1-3 möglich"; } } //ende der do Schleife wenn wahl zwischen 1-3 while(f_wahl>3); } switch(f_wahl) // 3. Würfel { case 1:return(f_würfel1,f_würfel[1],f_würfel[2]);break; } break;}//erste case Abfrage }//Ende unterprogramm einzel
int _tmain(int argc, _TCHAR* argv[]) { int anzahl_wurf,i,Würfel[7],chache[6],wahl;
char weiter;
srand( time(NULL) ); for(i=1; i<6; i++) { chache[i]=(rand()%6)+1; cout <<i<<". Wuerfel: " <<chache[i]<< endl; } //5 Würfel werden gewürfelt do {
cout<<"\nWieviel Wuerfel wollen sie behalten? eingabe:"; cin>>anzahl_wurf; //Abfrage wieviel würfel man behalten möchte
if(anzahl_wurf>5) { cout<<"\nEingabe nur zwischen 0-5 moeglich!"; } } while(anzahl_wurf>5); //Anzahl darf nicht größer als 5 sein
switch(anzahl_wurf) //switch in Anzahl der würfe { case 0: ;break; case 1: do { cout<<"\nWelchen Würfel wollen sie behalten? eingabe:"; cin>>wahl; if(wahl<5) { cout<<"Eingabe nur zwischen 1-5 möglich"; } } //ende der do Schleife wenn wahl zwischen 1-5 while(wahl>5);
switch(wahl) //switch für einen Würfel { case 1: einzel(chache[1]);break; //übergibt Würfel1 an Unterprogramm einzel case 2: einzel(chache[2]);break; //übergibt Würfel2 an Unterprogramm einzel case 3: einzel(chache[3]);break; //übergibt Würfel3 an Unterprogramm einzel case 4: einzel(chache[4]);break; //übergibt Würfel4 an Unterprogramm einzel case 5: einzel(chache[5]);break; //übergibt Würfel5 an Unterprogramm einzel
} // ende Anzahl der Würfe } //ende der Switch case Abfrage
Würfel[1]=einzel(chache[1]); Würfel[2]=einzel(chache[1]); Würfel[3]=einzel(chache[1]);
system("cls");
cout<<endl; cout<<Würfel[1]; cout<<Würfel[2]; cout<<Würfel[3];
getch(); return 0; }
|
edit ao: CPP-Tags eingefügt. Bitte nächstes Mal selber machen. Dieser Post wurde am 24.03.2010 um 11:20 Uhr von ao editiert. |