void uafgjort(){ status = "uafgjort"; cout << "Med " << sum << " blev spillet uafgjort. Tryk en vilkårlig tast for at kaste igen"; getch(); cout << "\n\n"; start(); }
void start(){ int t1 = kast(); int t2 = kast(); sum = t1+t2; cout << "\n\nDen første terning viser: " << t1 << "\n" ; cout << "Den anden terning viser: " << t2 << "\n" ; cout << "Dette giver samlet " << sum << ".";
if(spil!=totalspil){ cout << "\n\nTryk for at starte næste spil"; getche(); clrscr(); } }
void main() {
cout << "Hvor mange spil vil du spille?"; cin >> totalspil;
do { spil++; start();
}while(spil!=totalspil);
cout << "\n\n\nSå er alle " << totalspil << " spil slut!"; cout << "Samlet set vandt du "<<vsum<<" ud af "<<totalspil<<" spil."; cout << "\n\n\nTryk en tast for at lukke spillet"; getche(); }
Arne, hvordan kan det være at (rand()>>2) giver bedre resultater? Hvis nu rand fx returnerer 2, så bliver (rand()>>2) jo til 0. Øger du ikke chancen for at det tilfældige tal bliver 0 ?
Standard C/C++ rand tilhører den klasse af random generatorer som man kalder LCG (Linear Congruential Generator). De har nogle matematiske egenskaber som gør at de sidste bit er mindre random end de højeste.
>>2 smider de 2 laveste bit væk og kan derfor give mere tilfældige tal.
[Nogle LCG'ere skifter bl.a. mellem lige og ulige tal fordi mindste bit køer 0 1 0 1 0 1 ...]
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.