Archief - C++ 'spel'

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

BoneScraper

Legacy Member
Dag

Ik moet als taak een spel maken waarbij een robot over een grondplan kan bewegen en allerlei dingen opnemen. Mijn grondplan is een 2D-array waar ik een aparte klasse voor heb gemaakt. ik kan het grondplan vullen en tonen zonder problemen.
Nu heb ik een klasse gemaakt voor de robot en ik wil hem op het grondplan krijgen met een methode setPositie. Dit gaat echter niet zomaar omdat ik mijn grondplan moet kunnen meegeven als parameter (denk ik). Heeft iemand een idee hoe ik dit kan doen?
Als mijn vraag niet duidelijk genoeg is of als iemand de code wil zien zeg het maar...

Gr

Curahee Q

Legacy Member
Kan je niet gewoon in je klasse Grondplan de functie setPositie doen en met setPositie je robot meegeven? Ben geen held in C++ maar in java zou het er bij mij denkik als volgt uitzien:

Robot robot = new Robot();
Grondplan plan = new Grondplan();
plan.setPositie(robot, 4, 4);

BoneScraper

Legacy Member
Nja ik kan het eens proberen. kijken wat het geeft. In ieder geval al bedankt voor het idee. Gr

MAXXUR

Legacy Member
Hebt ge voorgemaakte classes gekregen of iets dergelijks? Ge kunt het op een aantal maniere oplossen hoor.

BoneScraper

Legacy Member
Klasse Grondplan:

void Grondplan::vulGrondplan(){

for (int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
Grondplan [j]="o";
}
}
Grondplan [0][0]="R";

}

void Grondplan::toonGrondplan() {
for (int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
cout<<Grondplan [j]<<" ";

}
cout<<endl;
}
}


string Grondplan:: setPos(int x, int y){

return;

}



Klasse Robot:

string Robot:: setPos(string a[10][10],int x, int y){
Posx=x;
Posy=y;
return a[x][y]="R";

}

Hier wil ik dus een array als parameter meegeven...

MAXXUR

Legacy Member
in uw klasse Grondplan hebt ge een tweedimensionale string array die ge trouwes ook Grondplan noemt?

Maak daar om te beginnen al een char 2D array van, want ge werkt met chars. Daarna; geef uw char 2D array mee als char** a, aangezien da een dubbele pointer voorstelt. Daarna gebruikt ge hem in uw functie door te derefereren:

char Robot:: setPos(char** a,int x, int y){
Posx=x;
Posy=y;
return a[x][y]='R';
}

BoneScraper

Legacy Member
void Grondplan::vulGrondplan(){

for (int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
Grondplan [j]="o";
}
}


invalid conversion from `const char*' to `char'

Nja ben geen held in c++

Kemblin

Legacy Member
idd enkele quotes: chars, dubbele quotes: strings

mss is het zo bedoeld, maar het lijkt mij handiger werken om uw grondplan gewoon te zetten in de constructor van een robot

Ook is het niet zo'n goed idee om uw robot al te zetten in de methode vulGrondplan van de klasse grondplan, dat gaat op zijn minst voor verwarring zorgen. Uw methodenamen zijn ook niet echt duidelijk, vulGrondplan zou beter 'vul' worden en toonGrondplan gewoon 'toon'. Ik snap ook niet echt het nut van die vulGrondplan methode, volgens mij kan die evengoed in een constructor van Grondplan.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan