Archief - C# Maze (doolhof) maken

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.

jUnked

Legacy Member
We hebben dus de opdracht gekregen om een maze game te gaan maken in C#. Doordat ik niet bepaald de meeste ervaring heb bracht dit toch meteen enkele vragen met zich mee waar jullie mij misschien mee kunnen helpen. Het doel is dus om een game te gaan maken die bij het starten een maze (doolhof) genereerd waar je vervolgens in kan rond lopen en zo de maze uitspelen. Het spel zelf zijn zorgen voor later, maar ik wil nu al op z'n minst een maze kunnen maken en vroeg me dus af wat precies de makkelijkste manier hiervoor zou zijn? Ik las al wat over A* algorithm, Hashmaps, ... maar wat denken jullie?

Alvast bedankt ;)

EDIT:

Kan nu een doolhof genereren a.d.h.v. een 2D array die dan wordt getoond op een picturebox etc, maar heb problemen met men "User" te laten bewegen, iemand die me hier mee kan helpen? (eventuele vergoeding)

pieta

Legacy Member
als ge zoekt op maze algorithm vindt ge echt een shitload aan info over verschillende algoritmes, de methode, de uitvoer tijd,...

Think Labyrinth: Maze Algorithms

voorbeeld site met info, lees en kies een alogitme, zoek dan specifiek verder op dat algoritme.

wel opletten sommige algoritmes maken de maze, andere lossen ze op.

Messias.

Legacy Member
Klik ook vooral door op de namen van de algoritmes voor een uitgebreide bespreking ervan.

jUnked

Legacy Member
aight bedankt, ziet er een handige link uit

wel jammer dat de code allemaal in c is ;(

jUnked

Legacy Member
update, zoek iemand die me kan helpen, eventuele vergoeding is inbegrepen

Cycloon

Legacy Member
Leg je probleem hier uit dan. Wees specifiek genoeg en iemand zal je wel richtlijnen geven (en dat zonder vergoeding).

jUnked

Legacy Member
Heb dus na wat zoekwerk de code bij elkaar gekacheld om een maze te laten genereren, maar nu zou ik een user (een "bolletje") willen laten bewegen in deze maze. Ik heb zelf niet echt veel ervaring in C#, maar volgens mij wordt de doolhof nu in een bitmap gestoken, en deze wordt dan getoond op de picturebox. Hier boven kan ik ook mijn "user" laten zien, maar heb wat problemen om deze te laten bewegen.. Nadat ik hem dan zou kunnen laten bewegen, komt het moeilijkste. Hij zou dan alleen moeten kunnen bewegen als er geen muur staat

Cycloon

Legacy Member
Probeer je probleem eens in stukken te splitsen en gerichte vragen te stellen. Niemand kan een antwoord geven op jouw vraag die veel te open is, zonder ook maar enige context te schetsen.

Anyway, als je iets wil laten bewegen moet je ergens key events gaan opvangen. Je moet ook ergens een bolletje tekenen waarvan je de coördinaten aanpast naar gelang welke key is ingedrukt. En je moet ergens de info over je maze bewaren en zo bepalen of er in een bepaalde richting een muur staat of niet.

Dit zijn meerdere kleine problemen die je moet weten op te lossen in jouw code. Voor die key events kan je perfect een tutorial zoeken. Een bolletje tekenen op een bepaalde positie kan je ook al. Voor het laatste probleem moet je eerst je eigen code leren kennen, daar kan niemand zomaar op antwoorden.

jUnked

Legacy Member
Ja het probleem zit hem niet in de key events of in het bolletje tekenen, dat kan ik al, het probleem zit hem eerder in het bolletje nu daadwerkelijk te laten bewegen. Door op de pijltjes te drukken, wordt de x of y waarde (aangelang van op welke knop je gaat drukken) verhoogd of verkleint met 10. Maar nadat dit wordt gedaan, verandert het bolletje niet van positie, en dat is eigelijk mijn vraag atm. Maar 'k denk niet echt dat iemand zo maar mij kan helpen zonder ook maar iets van de code te zien.

Cycloon

Legacy Member
Om je bolletje werkelijk te laten "bewegen" zal je een nieuwe afbeelding moeten genereren in je picturebox. Het beste kan je je maze op een bitmap schrijven zoals je reeds zei en die laden in de picturebox. Je kan dan het bolleteje voor de gebruiker gewoon tekenen op de picturebox en elke keer wissen als die zich verplaatst om daarna een nieuw bolletje te tekenen.

Zonder code te zien kunnen we je inderdaad geen voorgekauwde code geven, maar word je daar zelf beter van?

Probeer misschien eerst in een apart project een bewegend bolletje te maken. Dat kan misschien al veel verduidelijken.

jUnked

Legacy Member
Een bolletje laten bewegen kan ik al reeds, maar ik denk eerder dat er ergens een kleine fout in zit die ik over het hoofd zie, of dat ik iets verkeerd doe nu er nog iets anders in de picturebox getoond wordt ofzo. Misschien helpt het dat ik even opnieuw de code schrijf om het bolletje te laten bewegen, bedankt alvast.

Ciberth

Legacy Member
@Cycloon is het toegelaten code op forum te tonen ?

@JUnked zoals Cycloon zegt:

-probeer je probleem op te splitsen in kleine stukken
-probeer die stukken dan op te lossen (wat vast wel lukt, anders had je die taak niet gehad lijkt me)
-probeer ze dan samen te voegen op een gestructureerde manier

Cycloon

Legacy Member
ciberth zei:
@Cycloon is het toegelaten code op forum te tonen ?

Ik heb hier bitter weinig te zeggen hoor :p. Alleen heb ik zelf nogal schrik om code te posten omdat de meeste mensen daar niks uit leren en vaak zelf niet inzien hoe ze de gegeven code kunnen integreren in hun eigen project (vaak omdat ze geen idee hebben waar ze met bezig zijn).

jUnked

Legacy Member
Ja, 'k begrijp je wel Cycloon, leer er meer uit door het zelf te gaan zoeken, daarom vraag 'k ook niet om brokke code voor mij te gaan posten. Heb nu een apart project gemaakt waar ik het bolletje probeer te laten bewegen, en het werkt ook zonder problemen nu. Alleen het bewegen van het bolletje met de keys lukt nu niet. 'k Probeer dit te doen a.d.h.v. een switch in de KeyDown methode, maar lijkt niet echt te werken.

Ciberth

Legacy Member
Second that :)

Helemaal waar wat je zegt, ik dacht omdat je al iets langer lid bent dat je misschien de regels wat beter kende dan ik :)

Maar goed we zullen afwachten hoe het de TS afgaat :)

Cycloon

Legacy Member
jUnked zei:
Alleen het bewegen van het bolletje met de keys lukt nu niet. 'k Probeer dit te doen a.d.h.v. een switch in de KeyDown methode, maar lijkt niet echt te werken.

Probeer de meest relevante stukken code te posten en er zal hier zeker wel iemand helpen.

jUnked

Legacy Member
Dit is ong. wat ik heb gemaakt met op de plaats van blabla dan een methode, heb het ook al met een enkele If-lus geprobeerd om iets met één key te doen, maar zo werkt het precies niet, vind het ook niet meteen terug op het internet.

private void frmMaze_KeyDown(object sender, KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.Left:
blabla
break;
case Keys.Right:
blabla
break;
case Keys.Up:
blabla
break;
case Keys.Down:
blabla
break;
default:
return;
}
}

EDIT: fix't, moest blijkbaar de Key Preview-property op true zetten
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