Házi feladatként olyan pályagenerálót fogok megvalósítani, amely képes egy kis méretű minta alapján nagyobb méretű pályákat létrehozni. A minta és a generált pálya is kép lesz. A bemeneti adatokat (forrás kép elérési útvonala, kimeneti kép elérési útvonala, kernel mérete, kimeneti kép mérete) parancssorból várja majd a program. A generálás végén a program el fogja menteni a kész képet egy megadott helyre.
Az ötletet ebből a Youtube videóból merítettem. A videóban szereplő megoldásnál én egy naivabb, saját megoldással fogok próbálkozni.
Azért, hogy könnyedén ki lehessen próbálni a programomat, az images mappába beleraktam 3 lehetséges mintát.
Az egyes mintákat a következő parancssori argumentumokkal próbálhatjuk ki (de nem csak ezekkel):
- caves_in.png minta használatára példa:
in=./images/caves_in.png out=caves_out.png kernel-size=16x16 output-size=1024x1024
- circuit_in.png minta használatára példa:
in=./images/circuit_in.png out=circuit_out.png kernel-size=16x16 output-size=512x512
- road_in.png minta használatára példa:
in=./images/road_in.png out=road_out.png kernel-size=512x512 output-size=9216x9216
Az egyes argumentumok a következőket jelentik:
in
- a bemeneti minta (kép) helye
out
- a kimeneti pálya (kép) helye
kernel-size
- ekkora darabokat vág ki a program a bemeneti mintából
output-size
- a kimeneti pálya mérete
- Amennyiben a kivágott darabokból nem lehetséges kirakni egy szabályos pályát, akkor kivételre fut a program. (A megadott példák esetén ilyennel nem szembesültem.)
- Ha a kimenet mérete túl nagy, akkor stack overflow kivételt dob a program.