Autor Zpráva
final
Profil
Zdravím,
potreboval by som vytvoriť takúto štruktúru:
0 1 0 0 1
        0 0 0 0 0
        1 0 1 0 0
        0 0 0 0 0
        0 1 0 0 1
    // 0 - pozadie, 1 - dedina
v php dokážem zistiť súradnice poslednej pridanej dediny, ale nemôžem vymyslieť ako náhodne vygenerovať ďalšiu aby zároveň sa dodržala nejaká štruktúra(prvá dedina 1.1,1.3,3.3,...)
juriad
Profil
Zkus se víc rozepsat, tobě to nejspíš jasné o čem píšeš, ale nám opravdu ne.
Jde o dvojrozměrné pole, nebo jinou datovou strukturu; je velikostně omezené?
Jak je reprezentovaná dědina?
Jaké je pravidlo generování?
final
Profil
juriad:
Mám na mysli generovanie dedín(na mapu), klasicky pre prehliadačovú hru, klasicky vo väčšine hier sa dediny generujú vedľa seba teda tou štruktúrou ako som napísal

ja v php mám prakticky toto
$posledna_pridana_dedina_x = 1;
$posledna_pridana_dedina_y = 1;
a z toho potrebujem nejaký logický návod vygenerovať ďalšie súradnice

narýchlo som niečo spravil v js na ukážku..
tam je ale problém že by štruktúra vypadala nejak takto:
1 0 1 0 0 0 0
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 1 0 0
0 0 0 0 1 0 0
0 0 0 0 0 0 1
a to nejak potrebujem vyriešiť alebo to generovať úplne inak..
abc
Profil
A co je na tomto špatně? juriad se ptal na pravidlo generování, které jsi stále nedodal
1 0 1 0 0 0 0
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 1 0 0
0 0 0 0 1 0 0
0 0 0 0 0 0 1
final
Profil
abc:
majú byť vedľa seba teda nejak takto:
1 0 1 0 0 0 1
0 0 0 0 1 0 0
1 0 1 0 0 0 1
0 0 0 0 1 0 0
0 1 0 0 1 0 0
0 0 0 1 0 0 1
abc
Profil
Vždyť vedle sebe nejsou, jen jich tam je víc?
Ačkoliv teď, když do toho koukám delší dobu, zdá se mi, že mezi dedinami je vždy max jedna 0?
Bez nějakého popisu, jak jsi na to přišel, že mají být takto, to půjde jen těžko
Alphard
Profil
Nebo jde o to, aby hustota pokrytí byla na celé mapě přibližně stejná? Tj. roházet body, aby se nikde nekoncentrovaly,ani nevznikala bílá místa?
peta
Profil
final: Nerozumim. Jaka jsou pravidla pro pridani dalsi vesnice?
1. musi byt mezi nimi ve smerech x, y, xy aspon jedna nula
2. musi byt pocet 10
3. musi byt rozmisteny rovnomerne
4. pole musi byt 7x6
To jsou pravidla?

Pole je rekneme 7x6, cili array se 42 policky. Pokud musi byt kolem vesnice okraj, tak pri zapisu vesnice zapisi vesnici jako 2 a okraj jako 1. Pri randomu pak porovnavam pole[i*7+j]==0, cili neni to ani okraj 1 ani vesnice 2.
Rovnomernost se zase muze resit tak, ze rozdelis celou mapu na stejne oblasti podle poctu vesnic a v nich nahodne umistis vesnici. V tomto pripade ale vyzaduje kazda vesnice aspon 9 policek, aby ji bylo mozne v pripade potreby umistit do stredu nebo na okraj oblasti. Nebo pouzit slozitejsi algoritmus, kde muze byt hustota vetsi.
Googlem bys jiste nasel spoustu generatoru map a podzemi.
---
http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/mapgen2.swf - pekna hracka s exportem do xml :) Je treba klikat na random
http://volny.cz/peter.mlich/hry/lode.htm - treba by ti stacilo to, co pouzivam na Lode; Start, Reset+Auto, Reset+Auto

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0