Toon posts:

Headerfiles

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wie weet welke library ik moet gebruiken om met een randomizer te werken?

In Visual C++.

En ik moet voor een schoolopdracht een dambord maken.

Heeft iemand nog tips hoe ik dit moet doen. Ik heb nu met de ascii code 255 en 219 gebruikt en met for en if maar op 1 of andere vreemde manier drukt hij alleen witte of zwarte blokje's af in 1 hele lange rij oneinig door.

Ik moet ten eerste kolommen naast mekaar zien te krijgen en dan ook nog zwart,wit,zwart,wit,zwart, etc.

Wie kan mij even helpen.

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 21:02 schreef Iznogoud het volgende:
Wie weet welke library ik moet gebruiken om met een randomizer te werken?
stdlib.h
Heeft iemand nog tips hoe ik dit moet doen. Ik heb nu met de ascii code 255 en 219 gebruikt en met for en if maar op 1 of andere vreemde manier drukt hij alleen witte of zwarte blokje's af in 1 hele lange rij oneinig door.
Het is moeilijk om te zeggen wat je fout doet zonder je code gezien te hebben. :)

Verwijderd

Topicstarter
Jah kan moeilijk een code neerzetten die misschien totaal niet klopt. Maarjah als je het graag wilt. Dit is iets wat ik heb geprobeert:

#include <iostream.h>
#include <conio.h>
void main()
{
char x,y,a=x,b=a%2;

for (x=255; x<=10;)
{
for (y=219; y<=10;)


if(b==0)
cout<<y <<endl;

else
cout<<x <<endl;
getch();

}
}


Ik weet zowieso dat bij het initialiseren er iets fout is maar dat zo niet zo erg zijn. Maar ik kan er niet meer uitkomen. :?

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 21:19 schreef Iznogoud het volgende:
Jah kan moeilijk een code neerzetten die misschien totaal niet klopt.
Is geen probleem hoor. :)
code:
1
for (x=255; x<=10;)

Daar gaat het fout. Je gebruikt for verkeerd. De syntax is "for (a; b; c)": a wordt aan het begin eenmaal uitgevoerd, b is een conditie waarnaar gekeken wordt om te bepalen of de lus nog een keer uitgevoerd moet worden, en c wordt na elke lus uitgevoerd.

Voorbeeldje:
code:
1
2
3
4
for (int i = 0; i < 10; i++)
{
  cout << i;
}

Deze for maakt een variabele i met de waarde 0. (int i = 0) Na elke lus wordt i met eentje verhoogd (i++) en zolang i < 10, wordt de lus uitgevoerd.

Je zult dus "0123456789" te zien krijgen, en daarna stopt de lus.

Jouw lus maakt eerst x gelijk aan 255, gaat door zolang x kleiner of gelijk aan 10 is, en doet na elke iteratie niks.

En omdat je 255 in een signed char (bereik: -128..127) gestopt hebt, denkt je computer dat het -1 is. x wordt nooit aangepast, -1 is altijd kleiner of gelijk aan 10, gevolg: je lus stopt nooit.

Verwijderd

Topicstarter
Op donderdag 29 november 2001 21:29 schreef Onno het volgende:

Je zult dus "0123456789" te zien krijgen, en daarna stopt de lus.
Je krijgt 1 2 3 4 5 6 7 8 9 en 10

Dus wat zou ik dan eigenlijk moeten doen. Om zeg maar een integer getal om te zetten in een character want hoe kom ik anders aan 255 en 219(deze ascii heb ik nodig voor die zwarte en witte blokje's). En hoe krijg ik ze mooi netje's naats mekaar. Dit laatste zal niet het grootste probleem zijn.

Het grootste probleem is wanneer hij nu een zwart blokje af moet drukken en wanneer een witte. In mijn boek staat dat ik de Modulo % moet gebruiken. Ok maar hoe :?

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Ik denk dat je time.h ook nodig hebt.

Als je niet weet welke header file je voor een bepaalde functie moet gebruiken, kan je de help raadplegen over die functie. Het staat er ongetwijfeld in welke headers je nodig hebt.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op donderdag 29 november 2001 21:35 schreef Iznogoud het volgende:

[..]

Je krijgt 1 2 3 4 5 6 7 8 9 en 10

Dus wat zou ik dan eigenlijk moeten doen. Om zeg maar een integer getal om te zetten in een character want hoe kom ik anders aan 255 en 219(deze ascii heb ik nodig voor die zwarte en witte blokje's). En hoe krijg ik ze mooi netje's naats mekaar. Dit laatste zal niet het grootste probleem zijn.
code:
1
cout << char(255) << char(219);
Het grootste probleem is wanneer hij nu een zwart blokje af moet drukken en wanneer een witte. In mijn boek staat dat ik de Modulo % moet gebruiken. Ok maar hoe :?
De modulo operator geeft als resultaat de rest van een deling weer. Je kan mbhv een modulo-2 operatie dus weten of een getal even is of oneven. Indien het getal even is druk je het ene blok, indien oneven het andere.

https://fgheysels.github.io/


  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 21:35 schreef Iznogoud het volgende:
Je krijgt 1 2 3 4 5 6 7 8 9 en 10
Oh? :)
Dus wat zou ik dan eigenlijk moeten doen.
Nadenken. Wat wil je doen? Een dambord tekenen. En hoe ziet een dambord er dan uit? Nou.. 8 bij 8 vakjes, die afgewisseld zwart en wit zijn. Dan kom je al snel op een dergelijke constructie:
code:
1
2
3
4
5
6
7
8
for (int y = 0; y < 8; y++)    // voer deze lus 8 keer uit, voor 8 regels
{
  for (int x = 0; x < 8; x++)  // voer deze lus 8 keer uit, voor 8 blokjes
  {
    // teken hier een blokje van de juiste kleur
  }
  // zorg dat je naar de volgende regel gaat
}

En natuurlijk kan dit ook in 1 lusje, maar ik denk dat dit duidelijker is. :)
Het grootste probleem is wanneer hij nu een zwart blokje af moet drukken en wanneer een witte. In mijn boek staat dat ik de Modulo % moet gebruiken. Ok maar hoe :?
Bedenk eens (in woorden of in een formule) hoe je aan de hand van het x en y coordinaat van een blokje kunt vaststellen om welke kleur het gaat. Er zit een duidelijke regelmaat in de kleuren, dat mag duidelijk zijn. :)

Verwijderd

Topicstarter
for (int y = 0; y < 8; y++) // voer deze lus 8 keer uit, voor 8 regels
{
for (int x = 0; x < 8; x++) // voer deze lus 8 keer uit, voor 8 blokjes
{
// teken hier een blokje van de juiste kleur
}
// zorg dat je naar de volgende regel gaat
}

Who :? Ik wil er ook zoveel van afweten :P
Ok bij dit stukje krijg ik een regel van 1 2 3 4 5 6 7 8
dus moet ik nu dan
if (2) cout << 255
if (3) cout << 219
if (4) cout << 255
etc. ?

Zoiets of heb je hier ook nog weer wat voor. Want zoals jullie al zeiden dat je dit met behulp van modulo kunt doen. Maar dan krijg je een formule die ik nog niet helemaal begrijp. Ik weet dat als je 7 % 3 doet dat de uitkomst 1 is d8 ik :)

Maar hoe kun je nou in vredesnaam dat allemaal in 1 formule zetten zonder syntax errors :D

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 22:24 schreef Iznogoud het volgende:
Maar hoe kun je nou in vredesnaam dat allemaal in 1 formule zetten zonder syntax errors :D
Omschrijf eerst eens hoe je vaststelt welke kleur een bepaald vakje heeft. En dan dus niet 1 = zwart, 2 = wit, enz.

Als iemand jou een dambord zonder kleuren laat zien, en jij moet vakje y,x inkleuren, hoe bedenk je dan welke kleur die moet hebben?

Verwijderd

Topicstarter
Nou gewoon elk vakje zeg maar een nummer geven en dan om en om dus even en oneven verschillende kleur geven.

dus zeg maar:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40

Dan zeg maar 1 zwart 2 wit etc.

Dit snap ik maar hoe je dat in formule zet:
if (y%0)
cout << char(255)

zoiets d8 ik maarja dat wil nie |:(

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 22:36 schreef Iznogoud precies wat Onno hem eerder vertelde niet te schrijven
Kun je *echt* niet iets beters bedenken over hoe je de kleur van een vakje kunt bepalen?

Verwijderd

Topicstarter
:'( Nee alleen dat van even en oneven. Waarschijnelijk als je het zegt dan heb ik zoiets van DOM dat ik daar niet op kom maar ik kan echt niet zo 1 2 3 wat bedenken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
code:
1
2
3
4
5
6
7
8
for (int i = 0 ; i < 8; i++)
{
 for (int j = 0 ; j < 8; j++)
 {
   cout << ((i+j) % 2)? char(255) : char(209);
 }
 cout << endl;
}

https://fgheysels.github.io/


  • Onno
  • Registratie: Juni 1999
  • Niet online
Nou.. wat denk je ervan als ik zeg dat oneven vakjes op oneven regels zwart zijn, even vakjes op oneven regels wit, oneven vakjes op even regels wit, en even vakjes op even regels zwart?

Verpest deze educatieve sessie eens niet zo bruut whoami! ;)

Verwijderd

Topicstarter
Op donderdag 29 november 2001 22:49 schreef whoami het volgende:
code:
1
2
3
4
5
6
7
8
for (int i = 0 ; i < 8; i++)
{
 for (int j = 0 ; j < 8; j++)
 {
   cout << ((i+j) % 2)? char(255) : char(209);
 }
 cout << endl;
}
Wat houd [code] in en die vraagteken na ((i+j) % 2)? ?

char(255) : char(209) moet die : niet ; zijn?

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op donderdag 29 november 2001 22:51 schreef Onno het volgende:
Nou.. wat denk je ervan als ik zeg dat oneven vakjes op oneven regels zwart zijn, even vakjes op oneven regels wit, oneven vakjes op even regels wit, en even vakjes op even regels zwart?

Verpest deze educatieve sessie eens niet zo bruut whoami! ;)
Was om u te helpen. Anders zat je hier morgen misschien nog.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op donderdag 29 november 2001 22:54 schreef Iznogoud het volgende:

[..]

Wat houd
in en die vraagteken na ((i+j) % 2)? ?

char(255) : char(209) moet die : niet ; zijn?
Neen,
code:
1
cout << ((i+j) % 2)? char(255) : char(219);

is hetzelfde als
code:
1
2
3
4
5
6
7
8
if ((i+j) % 2)
{
  cout << char(255);
}
else
{
  cout << char(219);
}

maar dan korter.

https://fgheysels.github.io/


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 29 november 2001 22:49 schreef whoami het volgende:
code:
1
2
3
4
5
6
7
8
for (int i = 0 ; i < 8; i++)
{
 for (int j = 0 ; j < 8; j++)
 {
   cout << ((i+j) % 2)? char(255) : char(209);
 }
 cout << endl;
}
Eigenlijk mag dat niet:
Op donderdag 29 november 2001 21:02 schreef Iznogoud het volgende:
En ik moet voor een schoolopdracht een dambord maken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op donderdag 29 november 2001 22:57 schreef ACM het volgende:

[..]

Eigenlijk mag dat niet:
[..]
Sorry, zal het nooit meer doen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dit gaat al veel ste ver voor een schoolopdracht >:)

Ik wil zowieso weten hoe het moet ook al is het niet voor school. Ik krijg er een HEEEEEEEL klein beetje duidelijkheid in.

Verwijderd

Topicstarter
if ((i+j) % 2)
{
cout << char(255);
}
else
{
cout << char(219);
}

Hou het liever bij de simpele manier ook al is ie wat langer. Het gaat me nu om de syntax te leren begrijpen en te lezen.

Ik zal hier wat mee proberen en prutsen. Iedereen Alvast thx.

Is kijken of ik er uit kan komen, ben al redelijk op weg denk ik. Nu nog de rest uitvinden maar ik zal zelf eerst proberen *D

Verwijderd

Topicstarter
YEAH!!! :D Hij doet het. Alleen nu nog even over die randomise functie.

#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>

void main()
{
int raad,invoer;
randomize();
raad=rand()%100;
if(raad==0)
......................... etc.

Dit is mijn randomize functie en deze foutmelding krijg ik in Visual C++:
error C2065: 'randomize' : undeclared identifier

Ik heb dus de verkeerde library's gebruikt.
Zoals jullie zeiden dat ik time.h en stdlib.h moest proberen nou bij deze die doen het ook niet.

Het probleem is dat ik de MSDN (help) niet kan installeren. Krijg telkens een foutmelding. Dus kan het niet in de help opzoeken.

Kan iemand mij hiermee helpen?

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Op donderdag 29 november 2001 22:56 schreef whoami het volgende:

Neen,
code:
1
cout << ((i+j) % 2)? char(255) : char(219);

is hetzelfde als
[...]
maar dan korter.
Doe het dan echt kort :P
code:
1
cout << char((i+j)%2?255:219);

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
LOL :D Gaat me nu nog iets te ver.

Maar over net van die vraag over die randomize functie.
Ik ben eruit. Randomize() kent Visual C++ niet dat moet dan
srand (time (NULL)) zijn en met library TIME.H :)

Iedereen THX *D

  • Crazy D
  • Registratie: Augustus 2000
  • Nu online

Crazy D

I think we should take a look.

Op donderdag 29 november 2001 23:44 schreef Iznogoud het volgende:
Het probleem is dat ik de MSDN (help) niet kan installeren. Krijg telkens een foutmelding. Dus kan het niet in de help opzoeken.
Microsoft heeft 'm natuurlijk ook geinstalleerd staan, en geshared via MSDN Home

Ik heb ff geen zin om de hele precieze help index url zelf op te zoeken, ik vind het om dit tijdstip niet zo makkelijk surfen op de MS site ;), maar als je GoT hebt weten te vinden, dan zul je daar ongetwijfeld zelf wel uit kunnen komen (op een iets normaler tijdstip :P)

Exact expert nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op donderdag 29 november 2001 23:49 schreef mithalph het volgende:

[..]

Doe het dan echt kort :P
code:
1
cout << char((i+j)%2?255:219);
't moet nog een beetje leesbaar blijven ook hé. :) :P

https://fgheysels.github.io/

Pagina: 1