Wettsystem simulieren



  • lordvampire schrieb:

    eigentlich wollte ich nur wissen, ob meine IDEE vom sortierarray funktionieren kann..

    Nein.
    Falls du wissen willst warum, liest du weiter:
    Die for Schleife wird solange durchlaufen, wie ihr mittlerer Teil (hier: i=1), der als ein boolscher Ausdruck ausgewertet wird, wahr ist.
    Wäre also nur in genau einem Fall zutreffend - vermutlich nicht das, was du willst.

    Gruß,
    B.B.



  • Moment, sorry, habe deinen Kommentar übersehen:

    //da array[0] leer ist, soll hiermit um eine stelle vorgerückt werden, 1 auf 0, 2 auf 1, usw..

    Ja, die Idee funzt, bloß noch die Funktion anpassen.
    Ich weiß schon, warum ich Zeile 43 nicht ausgecodet habe - in mir schlummern wahrhaft didaktische Talente^^

    P.S.
    Tust du eingetlich auch gar nicht sortieren. Ist eher ein Rutscharray.
    Ansonsten sind noch Bugs im Code, aber wird schon.
    Gruß,
    B.B.
    🙂



  • wollte dir gerade erklären, warum ich denke dass die for-schleife schon funktionieren sollte... aber du hast ja mein kommentar gelesen... 🙂

    was meinste mit funkiton anpassen?

    und erklär mir bitte die bugs?? sonst brauch ich noch jahre!

    werde dann den weiteren fortschritt posten...

    greets



  • Die Idee funzt, die for Schleife geht so nicht.
    Mit Funktion anpassen meine ich eine Arrayrutschfunktion zu schreiben, die Funktioniert.
    Die Bugs sind: Der Wert 36 wird nie erreicht.
    Die Arraygrenzen sind nicht abgesichert, d.h. dein Programm stürzt irgendwann mal 100% ab,
    wenn es denn mal läuft.
    Dann ist da noch was mit deiner Klammerung faul, aber wird schon.

    Gruß,
    B.B.



  • @BigBro: meine for-schleife (rutschfunktion) funktioniert einwandfrei...
    bin meinem ziel (a bissarl simulieren) näher...
    weiß aber immer noch nicht, wie man array absichert und so... mal schauen, ob ich LAIE das irgendwann verstehe....

    greets

    #include <stdio.h> 
    #include <stdlib.h>
    #include <time.h>
    
    #define MAX 20
    
    int array[MAX]={1,2,3,4};
    int indx = 3;
    int startkapital = 300;
    int zufallszahl;
    int gespieltesysteme = 0;
    
    int main(){
    
    		int kapital = startkapital;
    	while (gespieltesysteme<10 && kapital>0) {
    		int wetthoehe;
    		if (array[1]>0) {
    			wetthoehe = array[0]+array[indx];
    		}
    		else {
    			wetthoehe=array[0];
    		}
    
    		kapital = kapital - wetthoehe;						// wetteinsatz von kapital abziehen
    		int zufallszahl=rand()%37;						// 0 - 36 (Roulette) :-) 
    		if (zufallszahl > 18) {								// gewettet auf zahlen "19-36" 
    			kapital = kapital + wetthoehe + wetthoehe;					// gewonnen
    			array[0]=0;										//kleinster wert wird gelöscht							array[indx]=0;									//höchster wert wird gelöscht
    			array[indx]=0;
    			indx = indx - 2;									//minus 2, da zwei werte gelöscht werden
    			if (array[1]>0) {
    				int anzahlzahlen = indx + 1;								//array neu sortieren, sodass kleinster wert auf arr[0] und höchster auf arr[index] ist
    				int i;
    				for (i=anzahlzahlen; i>0; i--)							//da array[0] leer ist, soll hiermit um eine stelle vorgerückt werden, 1 auf 0, 2 auf 1, usw..
    				{	
    					array[anzahlzahlen-i] = array[anzahlzahlen-i+1];
    				}
    				array[anzahlzahlen]=0;
    			}
    			else {
    				gespieltesysteme++;
    				array[0]=1;
    				array[1]=2;
    				array[2]=3;
    				array[3]=4;
    				indx=3;
    			}
    
    			printf ("GEWONNEN\t\t Einsatz: %d\t\t Zahl: %d\t\t Kapital: %d\n\n", wetthoehe, zufallszahl, kapital);
    		}
    		else
    			{
    				array[indx+1] = wetthoehe;
    				indx++;
    				printf ("VERLOREN\t\t Einsatz: %d\t\t Zahl: %d\t\t Kapital: %d\n\n", wetthoehe, zufallszahl, kapital);
    			}
    
    	}
    
    }
    


  • Mit absichern meinte ich dafür zu sorgen, das man nicht über Arraygrenzen hinaus zugreift.
    Was also noch zu tun wäre.



  • noch ne frage: warum bekomme ich nach dem kompilieren, jedesmal die gleichen zufallszahlen, wenn ich das programm laufen lasse??

    komisch! 🙂

    greets



  • lordvampire schrieb:

    noch ne frage: warum bekomme ich nach dem kompilieren, jedesmal die gleichen zufallszahlen, wenn ich das programm laufen lasse??

    komisch! 🙂

    Es fehlt srand, das Du am besten über einen Systemtimer aufrufst.



  • wenn ich srand verwende bekomme ich jedesmal die gleiche zufallszahl zB immer 28..
    wenn ich ohne srand mache bekomme ich immer die gleiche folge von zahlen zB. 9 dann 7 dann 4 dann 35 usw...

    mann oh mann



  • Was nimmst Du denn als seed für srand?



  • hat funktioniert, nachdem ich srand (time(NULL)); direkt unter main() gschrieben habe... hatte es vorher direkt über zufallszahl=rand()%37 hatte...

    jetzt klappts

    danke


Anmelden zum Antworten