Toon posts:

[c++ builder]Vraagje over deze zelfgemaakte code

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char Kleuren[][10]={"clRed","clYellow","clGreen","clBlack"};
int i;
int x;
randomize();
//rondje1
i=random(3);
Object1->Brush->Color=(TColor)Kleuren[i];
Buffer1->Caption=Kleuren[i];
//rondje2
i=random(3);
Object2->Brush->Color=(TColor)Kleuren[i];
Buffer2->Caption=Kleuren[i];
//rondje3
i=random(3);
Object3->Brush->Color=(TColor)Kleuren[i];

De objecten zijn Tshapes (rondjes) en de buffers zijn labels. Nu zou je denken dat rondje 1 de kleur krijgt die in buffer 1 staat en voor rondje 2 hetzelfde, maar dit is niet het geval, ook hebben de rondjes altijd dezelfde kleur en staan er vaak hele andere kleuren in de buffer, wat doe ik verkeerd?

Verwijderd

Je zou bijvoorbeeld als debugging informatie even elke keer i en Kleuren[i] kunnen laten printen. Dan weet je in ieder geval of het daar niet mis gaat.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

die random dingen zijn steeds gelijk

Doet iets met Cloud (MS/IBM)


  • jopiek
  • Registratie: September 2000
  • Laatst online: 21-08 19:56

jopiek

Tja... 'ns ff denken.

Op zondag 19 mei 2002 20:25 schreef koely het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char Kleuren[][10]={"clRed","clYellow","clGreen","clBlack"};
int i;
int x;
randomize();
//rondje1
i=random(3);
Object1->Brush->Color=(TColor)Kleuren[i];
Buffer1->Caption=Kleuren[i];
//rondje2
i=random(3);
Object2->Brush->Color=(TColor)Kleuren[i];
Buffer2->Caption=Kleuren[i];
//rondje3
i=random(3);
Object3->Brush->Color=(TColor)Kleuren[i];

De objecten zijn Tshapes (rondjes) en de buffers zijn labels. Nu zou je denken dat rondje 1 de kleur krijgt die in buffer 1 staat en voor rondje 2 hetzelfde, maar dit is niet het geval, ook hebben de rondjes altijd dezelfde kleur en staan er vaak hele andere kleuren in de buffer, wat doe ik verkeerd?
gewoon (itt wat er gezegd wordt door o.a. Borland) vaker randomize() aanroepen ;)

Cogito Ergo Credo


Verwijderd

Op zondag 19 mei 2002 21:36 schreef D2k het volgende:
die random dingen zijn steeds gelijk
Mag jij me even uitleggen waarom. Volgens mij heeft ie ze goed gebruikt hoor :)
Hij seed eerst met de randomize() functie. Daarna kan je gewoon random(<bound>) aanroepen om een willekeurig getal te creeren tussen 0 en <bound>. Toch?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
De borland C++ helpfile:

search>>randomize
Header File

stdlib.h

Category

Math Routines

Syntax

#include <stdlib.h>
#include <time.h>
void randomize(void);

Description

Initializes random number generator.

randomize initializes the random number generator with a random value.

Return Value

None.
Klik op example
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(void)
{
int i;

randomize();
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
Dus rand() ipv random(). Die hebben een verschillende strekking. Voor random moet je de seed telkens even zetten.

Verwijderd

Je Cast een string naar een kleur.. vind ie dat wel grappig :?

Verwijderd

Topicstarter
ik heb het ff met mijn leraar overlegt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TColor Kleuren[10]={clRed,clYellow,clGreen,clBlack};
int i;

randomize();
//rondje1
i=random(3);
Object1->Brush->Color=Kleuren[i];
Kleuren[i];

//rondje2
i=random(3);
Object2->Brush->Color=Kleuren[i];

//rondje3
i=random(3);
Object3->Brush->Color=Kleuren[i];

  • jopiek
  • Registratie: September 2000
  • Laatst online: 21-08 19:56

jopiek

Tja... 'ns ff denken.

Op woensdag 22 mei 2002 13:51 schreef koely het volgende:
ik heb het ff met mijn leraar overlegt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TColor Kleuren[10]={clRed,clYellow,clGreen,clBlack};
int i;

randomize();
//rondje1
i=random(3);
Object1->Brush->Color=Kleuren[i];
Kleuren[i];

//rondje2
i=random(3);
Object2->Brush->Color=Kleuren[i];

//rondje3
i=random(3);
Object3->Brush->Color=Kleuren[i];
je had eerst "Kleuren[][10]" staan en dat zag er idd een beetje vreemd uit, maar nog zou het zo kunnen zijn dat random zich in de laatste code vreemd gedraagd hoewel 't officieel correct is (heb ik ervaring mee...)

Cogito Ergo Credo

Pagina: 1