Ratespiel Array



  • Guten Abend,
    ich hab bei meinem Folgenden Code ein Problem:
    Also, es handelt sich um ein kleines Zahlen Ratespiel.
    Nun möchte ich aber ein array mit einbauen, welches alle bisherigen Eingaben speichert und wenn man dann eine Zahl eingeben möchte, welche schon eingegeben wurde soll halt eine Fehlermeldung kommen, ähnlich wie bei den anderen Überprüfungen. Diese Überprüfung soll in dem else if in Zeile 49 ff. stattfinden (statt Zahl == ex, was halt im Moment nur mit der letzten Eingabe vergleicht.

    Und ich habe leider keine Ahnung wie ich das machen könnte, also bitte ich um Lösungen.

    
    ```#include <iostream>
    #include <ctime>
    
    using namespace std;
    
    
    int main()
    {
    	int zahl, max, random, i;
    	
    
    	srand((unsigned)time(0));
    
    	cout << "Was soll das Maximum sein? Empfohlen wird h\224chstens 100, sonst wird es zu schwer." << endl;
    
    	do 
    	{
    		cin >> max;
    		if (max <= 0)
    		{
    			cout << "Das Maximum muss höher als 0 sein!" << endl << "Bitte erneute Eingabe: " << endl;
    		}
    	} while (max <= 0);
    	
    	random = (rand()%max)+1;
    	cout << "Es wurde eine zuf\204llige Zahl generiert!" << endl;
    	cout << "Erraten Sie die zuf\204llig generierte Zahl. Sie haben maximal 10 Versuche!" << endl;
    	zahl = 0;
    
    	for (int i = 1, ex = 0; i <= 10; i++)
    	{
    
    		cout << i << ". Versuch: ";
    		cin >> zahl;
    		
    		
    
    		if (zahl > max)
    		{
    			cout << "Die zuf\204llige Zahl kann nicht gr\224ßer sein als ihr gesetztes Maximum! Probiers nochmal:" << endl;
    			i--;
    		}
    		else if (zahl <= 0)
    		{
    			cout << "Die zuf\204llige Zahl kann nicht 0 oder kleiner sein! Probiers nochmal:" << endl;
    			i--;
    		}
    		else if (zahl == ex)
    		{
    			cout << "Sie haben wieder die selbe Zahl eingegeben! Probieren Sie es nochmal:" << endl;
    			i--;
    			
    		}
    		else if (zahl == random)
    		{
    			cout  << endl << "Herzlichen Gl\201ckwunsch, sie haben die zuf\204llige Zahl beim " << i << ". Versuch erraten!" << endl;
    			i = 11;
    		}
    		else
    		{
    			if (i == 10)
    			{
    				cout << endl << "Sie haben die Zahl leider nicht mit 10 Versuchen erraten. :/" << endl;
    			}
    			else
    			{
    				cout << "Oh, leider falsch!" << endl;
    			}
    		}
    		ex = zahl;
    		
    
    
    
    	}
    
    	
    
    
    
    
    
    }


  • Und wo ist das Problem?



  • @Zhavok ich weiß nicht wie ich das machen soll



  • @Mxxrcel Du musst die Zahl im Array suchen.

    Wenn nicht vorhanden, dann eintragen.



  • @DirkB und wie macht ich das?



  • @Mxxrcel Schleife und Vergleich



    • Wie viele Variablen Namens i gibt es in Deinem Programm?
    • Deklariere/definiere Variablen so nahe wie möglich an dem Ort, an dem sie verwendet werden. So lokal wie möglich, so global wie nötig.
    • DRY! (Don't repeat yourself!) Wenn Du zweimal (oder noch öfter) den selben oder sehr ähnlichen Code schreibst gibt es immer eine bessere Lösung.
    • using namespace std; ist eher zum Abgewöhnen.

Anmelden zum Antworten