Frage von SpikeyMikey, 29

Warum kann der Computer hier keine Streichhölzer ziehen?

#include <iostream>

include

include

include

using namespace std;

const int streichhoelzer = 20;

int main() {

bool spieleristdran = true;

int spieler, computer, streichholz, anzahls;

while(streichholz != streichhoelzer) { cout << "Wie viele Staebchen moechtest du ziehen?"; cin >> anzahls;

if(anzahls == 1)
{
  streichholz += 1;
}

else if(anzahls == 2)
{
  streichholz += 2;
}

else if(anzahls == 3)
{
  streichholz += 3;
}

else if(anzahls == 4)
{
  streichholz += 4;
}

srand(time(NULL));
computer = rand() % 4 + 1;
streichholz += computer;

} }

Antwort
von Fitje, 8

Es liegt vieleicht daran, wie du deine Zufallszahlen generierst:

Zuerst musst du

#include <time.h>

mit rein nehmen.

srand() darf nur einmal pro Laufzeit aufgerufen werden, sonst gibt es immer wieder die gleichen Zahlenreihen.

Um das zu verhindern nimmst du eine globale Variable, z.B.

int initrandom = 0;

beim Programmaufruf mit

if (initrandom == 0)

{

srand(time (NULL));

initrandom = 1;

}

verhinderst du, dass rand noch einmal aufgerufen wird.

mit der Funktion

//generiert Zufallszahlen von 1 bis 32767

int getrand(int min, int max)

{

int zuza, zuza2, zuza2, rewer;

if (initrandom == 0)

{

srand(time (NULL));

initrandom = 1;

}

zuza = rand();

zuza2 =max - min +1;

zuza3 = zuza % zuza2;

rewer = zuza3 + min;

return rewer;

}

generierst du dann diese Zufallszahlen.

Weitere Infos findest du auf www.coding-board.de

Kommentar von Fitje ,

Ausserdem musst du nach der Anweisung:

streichholz += computer;

eine Ausgabeanweisung einbauen:

cout << "Streichholz: " << streichholz << endl;

Kommentar von SpikeyMikey ,

Danke dir :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten