Avatar billede tvh33 Nybegynder
16. marts 2009 - 09:06 Der er 2 kommentarer

Minestryger problem

Hej

Jeg er ved at lave et minestrygerspil i java, og det basale fungerer egentlig fint nok. Jeg har dog brugt lang tid på en problemstilling som jeg ikke har fundet en fungerende løsning på endnu.

Hvis man klikker på et felt, som ikke har nogle miner omkring sig, så skal programmet automatisk "klikke" på resten af de tomme felter der grænser op til feltet man klikkede på, plus de omkringliggende "vægge".

Har i nogle idéer til hvordan jeg kan løse dette problem?

Tak

LIDT INFORMATION OM MIT PROGRAMS OPBYGNING:
Hvert felt er en klasse (der nedarver JLabel), som finder antallet af omkringliggende miner når man klikker på det, hvorefter den skriver denne værdi på labelet.

I min klasse "mainFrame()" har jeg et to-dimensionelt array af felt-klasser. Derudover har jeg et to-dimensionelt heltalsarray, der indeholder 1 og 0'er afhængig af hvor bomberne er placeret.

Hver instans af felt-klassen oprettes med parametrene: x-position i arrayet, y-position i arrayet og det to-dimensionelle array der holder styr på bomberne. På den måde kan jeg i felt-klassen afgøre om feltet ligger ved siden af en bombe.
Avatar billede ksoren Nybegynder
16. marts 2009 - 10:56 #1
Du kontroller alle otte felter rundt om. Hvert felt, der ikke indeholder noget, gemmer du positionen på.

Det gentager du så for alle dem du har gemt (som du igen gentager for alle de nye, der bliver fundet).
Avatar billede gedfrik Nybegynder
19. marts 2009 - 23:20 #2
Som ksoren2 siger, så er det noget med nogle gentagelser - rettere sagt, en rekursiv metode. Noget i retning af:

Algo1(felt):
-  tjek alle omkring-liggende felter

-  hvis der ikke findes nogen miner så:
        gør det pågældende felt "gråt"
        kald Algo1 på alle omkring-liggende miner

-  ellers(hvis der findes miner omkring felter) så:
        //Whatever - do what you usually do :)

----------
Jeg ved ikke om det gav lidt mere opklaring, men det er i hvert fald princippet - du skal lave en metode som kaldet sig selv, altså et rekursivt kald.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester