Wettsystem simulieren
-
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