Nekromanti kartgenerator, rutor

Snow

Swashbuckler
Joined
17 May 2000
Messages
2,617
Location
Klippan
Jag har skrivit en kartgenerator, för ett datorspel, men det spelar ingen roll. Det var en roguelike med slumpvisa kartor. Kartgeneratorn hade massor av parametrar för att kunna skapa olika banor.
Min tanke är att plocka kartgeneratorn ur spelet och packa den med ett fint gui istället. Så kan man göra inställningar i guit och sen trycka generate. Är det någon som skulle vilja ha ett sådant program? Det är java så vem som helst kan köra det. Men jag skulle vilja ha någon som är intresserad för att testa att använda den i riktiga project.

Vill någon ha detta program?
 

Snow

Swashbuckler
Joined
17 May 2000
Messages
2,617
Location
Klippan
Jag har tre matriser: Kartan, Åtrå och Förbjuden.
Kartan börjar blank, Åtrå börjar blank och Förbjuden har en ram runt hela kartan.
Om man vill forma sin karta som tex ett T, L eller S (eller annan valfri form) så kan man pilla på Förbjuden.

Jag har ett antal "kortlekar". Storlek på ett rums sida, antal rektanglar som bygger upp ett rum och hur stor förbjuden ram det blir runt varje rum.
multiRoom = 1,1,2,2,3,3 //33% av alla rum blir en vanlig rektangel, 33% blir två rektanglar i tex ett L eller T etc
roomSpacing = 1, 3, 5, 7 //det är rätt glest mellan rummen
roomSize = 4, 5, 6, 7, 8, 9 //varje rektangel får en sida mellan 4 och 9 rutor

Code:
Sätt Åtrå till 1 i mitten på kartan. Här börjar första rummet.
Evig loop //den bryts inuti om enligt vissa kriterier
    Hur många rektanglar består rummet av, dra från kortleken
    Bygg rummet genom att kombinera ihop det dragna antalet rektanglar, dra rektanglarnas storlekar (två dragningar per rektangel).
    För varje möjlig position som rummet kan placeras (utan att träffa förbjudet området)
        Räkna ut hur mycket Åtrå det täcker
        Lägg på en liten slump
    Om Åtrå är 0 eller rummet inte kan placeras alls, försök igen med nytt rum eller avbryt rumsplacering (oftast försöker man igen) Detta är kriteriet för när man är klar med rummen.
    Placera rummet på den bästa platsen
    Fyll rummet på Förbjuden, inga andra rum får överlappa detta
    Bestäm ramtjocklek runt rummet (dra från roomSpacing) och sätt detta i förbjuden.
    Precis utanför den förbjudna ramen, sätt Åtrå till 1, andra rum kommer att vilja ligga så nära som möjligt

Sen fortsätter det med att göra "crawls" mellan lämpliga dörrar som jag sätter ut längs rummens sidor.
 
Top