Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ermitteln wer gewonnen hat...if/for/..

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
02.04.2004, 14:30 Uhr
Fraenky



hi!

Zitat:
wenn zB der erste Spieler gewonnen hat, dann steht dort "S1 hat gewonnen"
aber die for Schleife wird ja anzahl[spieler] durchlaufen, d.h. wenn die anderen beiden nicht gewonnen haben, dann steht dort halt nicht gewonnen und das 2 mal...wenn ich aber nachdem einer gewonnen hat abbreche (break inner for Schleife), dann kann immer nur einer gewonnen haben auch wenn zB 2 Spieler die gleiche zahl richitg geraten haben. So ist aber der erste Spieler im Vorteil, weil wenn er gewonnen hat wird die Schleife abgebrochen unabhängig ob noch der 2. oder 3. Spieler ebenfalls richtig getippt und damit gewonnen haben...


...also müsste doch immer eine Variable prüfen, wer gewonnen hat und wer nicht. zB in der for Schleife:

C++:
int ix, iy;
for(i=0; i<anzahl; i++)
  {
  zahl_eing_m[i]=spieler[i].returnZahl();
  sname[i]=spieler[i].returnName();
  ix=Spiel[i].gewonnen(zahl_eing_m[i], zahl_eing_c, zzahl);
  iy=0;
     if(ix == 2)//wenn x gleich 1 ist hat der Computer gewonnen und die Schleife wird abgebrochen..
     {
     cout << " Der Computer hat gewonnen!";
iy=1;
     break;
     }
     if(ix == 1)//wenn x gleich 1 ist, hat ein Mensch gewonnen
     {
     cout << " " << sname[i];
     cout << " hat gewonnen!" << endl;
     iy=2;
     }
  }// for
//nach der for Schlefe:
if(iy == 0)
{
cout << " Keiner hat gewonnen!" << endl;
}



...so kommt immer dann die Meldung "Keiner hat gewonnen!" wenn der erste Spieler(und/oder der 2te Spieler) gewonnen hat (weil die for Schleife ja noch 2 mal bzw 3 mal durhclaufen werden muss..)
wenn dann der 3te Spieler allein gewinnt, kommt die Meldung nicht, weil ja dann die for Schleife das letzte mal durchlaufen worden ist und iy=1 ist (da ja der 3te Spieler gewonnen hat)
wenn dann alle drei gewinnen, kommt es haben der, der und der gewonnen...ohne "Keiner hat gewonnen"

es müsste eine Variable geben, die während der Laufzeit der forschleife weiß, welcher durhclauf es ist und ob eriner gewonnen hat und do die Variable iy größer als 0 (null) setzt..

hoffe ihr versteht mich..alles son bissl kompliziert..

THX!

MfG
Fraenky
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
02.04.2004, 14:50 Uhr
RedEagle



wenn man mehr werte hat, (z.B. 10 Scores) dann könntest du das auch mit BubbleSort sortieren. der 1. wert währe dann der Gewinnerwert und man sieht auch, wer dann auf platz 2 oder 5 ist.

Für die, die BubbleSort zu langasm finden:
(BubbleSort deshalb, weils Übersichtlicher und einfacher ist als Quicksort und die Zeit macht bei 10 werten noch nicht viel aus)
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
02.04.2004, 14:51 Uhr
Fraenky



toll i habs:

die Zeile

C++:
iy=0;


ist schuld....jedesmal wenn die for Schleife durchläuft, wird die Variable ja wieder auf Null gesetzt...habs mir einfach nicht vorgestellt, wenn ich sie ausserhalb der for Schleife auf 0 setze..so gehts nu:

C++:
iy=0;
  for(i=0; i<anzahl; i++)
  {
  zahl_eing_m[i]=spieler[i].returnZahl();
  sname[i]=spieler[i].returnName();
  ix=Spiel[i].gewonnen(zahl_eing_m[i], zahl_eing_c, zzahl);
     if(ix == 2)//wenn x gleich 1 ist hat der Computer gewonnen und die Schleife wird abgebrochen..
     {
     cout << " Der Computer hat gewonnen!";
     iy=2;
     break;
     }
     if(ix == 1)//wenn x gleich 1 ist, hat ein Mensch gewonnen
     {
     cout << " " << sname[i];
     cout << " hat gewonnen!" << endl;
     iy=1;
     }
  iy=iy+iy;
  }// for
  
  //cout << " iy: " << iy << endl;
  
  if(iy == 0)
  {
  cout << " Keiner hat gewonnen!" << endl;    
  }



Tschau!

MfG
Fraenky
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: