| Prevodi || Titlovi || Преводи || Podnapisi || Prijevodi |
Sokoban Puzzle Solver |
Odgovori
|
| Korisnik | |
XYZ
Profil člana
Pronađi sve prevode
Pošaljite privatnu poruku
Pronađi postove člana
Dodaj na listu prijatelja
Banned user
Pridružen: 20.Travanj/Apr.2010 Status: Offline Points: 81 |
Opcije posta
Thanks(0)
Citiraj Odgovor
Tema: Sokoban Puzzle SolverObjavljeno: 07.Listopad/Oct.2010 u 04:26 |
|
Sokoban Puzzle Solver v3.7.2
Tutorijal Program možete preuzeti besplatno sa
a evo osnovnih stvari o tome kako se radi sa njim. On se ne instalira, i kad ga pokrenete, dobićete njegov radni prozor Ako imate spremne zadatke sa potrebnom ekstenzijom, možete sa menija File -> Load Labyrint da ga pronađete, učitate i sa menija Puzzle -> Start Solving da krenete u rešavanje. Potrebne ekstenzije zadataka su *xsb ili *.lab što je bitna stvar, jer programi poput Sokoban for Windows Bjorna Kalmarka koriste fajlove sa ekstenzijom *.slc. Ne znam da li postoji program za konvertovanje, no to ovde nije ni bitno toliko, jer sa solverom možete sami napraviti zadatak sa potrebnom ekstenzijom. Kad ste startovali program, kliknite na "Make" pa na Make Puzzle, da biste aktivirali ovaj meni za pravljenje zadataka. Ponovo kliknite na Make, i videćete da je sada padajući meni aktivan Želimo da napravimo sami zadatak, zato biramo sa izbornika "New puzzle" Otvoriće se prazan prozor u kome pravite svoj zadatak, birajući svaki put potrebnu vrstu elemenata sa menija "Make"; Ako ste recimo izabrali "Wall", cigle u zidu možete unositi bilo gde u radnom prostoru neprekidno levim klikom miša u prazno polje. Ako ste kliknuli u polje gde se već nalazi cigla, ona će biti poništena, što olakšava popravke kod pogrešnih unosa. Dakle, ne morate za svaku ciglu ponaosob stalno pritiskati "Wall" sa menija, jednom kad pritisnete, alat je stalno aktivan, sve dok ne odaberete drugi unos. Dakle, element zadatka unosite levim klikom miša, nakon što ste vrstu unosa odabrali sa menija "Make". Levi klik na uneti element u prozoru, ako je aktivan njegov unos, poništava ga. Evo primera uspešno napravljenog zadatka Postoje određena pravila po kojima se unose elementi zadatka, na primer, Solver vam neće dopustiti unošenje "target-a", pre nego što ste uneli blokove, a kod pravljenja ciljnih polja, vodi računa o broju postavljenih elemenata. Na primer, postavili ste 5 blokova i pokušavate da postavite 6-to ciljno polje... Program vam to neće dopustiti dok ne postavite još jedan blok. Elemente u radnom prozoru postavljate po slobodnom nahođenju, vodeći jedino računa da ostanete u granicama radnog prozora.
Postoje još neka ograničenja, a o tome je najbolje pročitati na home stranici. Inače, program zna često i da "zariba" iz čista mira, onda je jedini lek da ga startujete ponovo. Ono što ste napravili treba sačuvati, sada sa padajućeg menija Make birate Save as XSB odeđujete ime, format i mesto gde ćete sačuvati svoj napravljeni zadatak. ( Birate .xsb ekstenziju, dok .lab ekstenzija pravi kodiranu verziju zadatka, i možete je otvoriti u Notepad-u i videti kako izgleda. No, Solver pri pokušaju da se ono učita prijavljuje neku grešku....) Dok ste pravili zadatak, ništa sem "Make" menija nije bilo aktivno. Sada treba deaktivirati taj izbornik, da biste aktivirali ostale menije; (dečekirajte Make puzzle) Iako je vaš napravljeni zadatak ostao u radnom prostoru, izgleda da radni prostor i prostor za rešavanje nisu isto, treba pozvati zadatak u ovaj drugi (ako sam u pravu) sa izbornika "File". Ovo još i stoga što program izgleda pamti prethodne poslove, te ako odmah pristupite rešavanju sa Puzzle -> Start Solving može se desiti da krene da rešava poslednji zapamćeni zadatak, a ne novi. Dakle: sačuvajte novi zadatak, pa ga potom pozovite! Primetićete po učitavanju zadatka da je on promenio poziciju, i skroz je pri vrhu. Rešavanju pristupamo sa izbornika "Puzzle" tu su i opcije da rešavate zadatak tasterima sa strelicama sa tastature, ispod menija Play.... Program će krenuti u rešavanje, i pri tome mu je potrebno dosta memorije, u šta se možete uveriti praćenjem toka rešavanja po informacijama u dnu prozora za rešavanje, koji ponekad nije prisutan, te izgleda da Solver ima neke bagove... Ako je zadatak pretežak, izbaciće vam poruku da je prekoračio memoriju i sam če prekinuti rešavanje. Ako je pak bio uspešan, izbaciće vam pop-up o tome Zatvorite pop-up prozor kliknuvši na Ok, i ostaje još samo sačuvati to rešenje. i vodite računa o mestu i ekstenziji fajla Ako sada želite da vidite to rešenje, pozovite ga sa File -> Load solution a onda sa Puzzle -> Show solution možete da ga vidite. Inače, treba se malo poigrati sa Solverom, da biste ga upoznali, a očito je da je moje i njegovo poznanstvo kratko. Ažurirao XYZ - 11.Listopad/Oct.2010 u 18:48 |
|
![]() |
|
XYZ
Profil člana
Pronađi sve prevode
Pošaljite privatnu poruku
Pronađi postove člana
Dodaj na listu prijatelja
Banned user
Pridružen: 20.Travanj/Apr.2010 Status: Offline Points: 81 |
Opcije posta
Thanks(0)
Citiraj Odgovor
Objavljeno: 09.Listopad/Oct.2010 u 21:06 |
|
Još samo sitna napomena u vezi demonstracije rešenja koje je Solver našao za neki zadatak. Demonstraciju aktivirate sa menija Puzzle, i vodite računa da je odčekirano Auto Show
da biste videli rešenje potez po potez. Levi klik bilo gde u prozoru za demonstraciju pomera dokera za jedno polje. Ako vam je pak čekirana opcija Auto Show, rešenje će biti prikazano kontinualno, poprilično brzo, i treba vam dobra memorija da ga zapamtite. Ažurirao XYZ - 09.Listopad/Oct.2010 u 21:08 |
|
![]() |
|
XYZ
Profil člana
Pronađi sve prevode
Pošaljite privatnu poruku
Pronađi postove člana
Dodaj na listu prijatelja
Banned user
Pridružen: 20.Travanj/Apr.2010 Status: Offline Points: 81 |
Opcije posta
Thanks(0)
Citiraj Odgovor
Objavljeno: 20.Listopad/Oct.2010 u 22:35 |
|
Ako vas pak mrzi da se zezate sa pravljenjem zadatka, probajte ovaj savet Bjorna Kalmarka
Otvorite Sokoban for Windows 3.1 b2 i iskopirajte zadatak u neki tekst editor, sačuvajte ga sa xsb ekstenzijom, i pozovite u Solver. Ostalo znate. UPDATE: Možete koristiti i Sokoban for Windows 2.3 b6, za pravljenje *.xsb fajlova, ali uz pomoć nekog tekst editora. Kad sa menija Game -> Save Game As... (u v2.3 b6) sačuvate neki zadatak, dobićete fajl koji izgleda ovako ===================================== <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE SavedGame SYSTEM "SaveGame.dtd"> <SavedGame> <File>C:\Program Files\Sokoban 2.0\Levels\81.slc</File> <Player>Suad</Player> <Nr>9</Nr> <History></History> <Level Id="10" Width="11" Height="12"> <L> ###</L> <L> #.#</L> <L> ##$####</L> <L> # #</L> <L> # ** ####</L> <L> # * *** #</L> <L>##* * * #</L> <L># * ## * ##</L> <L># * * #</L> <L># ** * #</L> <L># @ ###</L> <L>########</L> </Level> </SavedGame> ====================================== i potrebno je odstraniti višak, da bi se on mogao učitati u Solver, tj. on mora da izgleda ovako ====================================== ### #.# ##$#### # # # ** #### # * *** # ##* * * # # * ## * ## # * * # # ** * # # @ ### ######## ===================================== To su četiri operacije 1) Brisanje teksta iznad prvog para <L>...</L> 2) Brisanje teksta ispod zadnjeg para <L>...</L> 3) Brisanje svih <L> 4) Brisanje svih </L> Za 1) i 2) selektujte tekst, pa Cut (u EmEditor-u) Za 3) i 4) sa menija Search -> Replase pa zamenite gornje karaktere praznima EmEditor ima opciju za snimanje makroa, i verovatno ovo može da se snimi kao makro(i), ali ja to ne znam trenutno kako da uradim. Možda neko ima ideju? Ažurirao XYZ - 23.Studeni/Nov.2010 u 22:30 |
|
![]() |
|
XYZ
Profil člana
Pronađi sve prevode
Pošaljite privatnu poruku
Pronađi postove člana
Dodaj na listu prijatelja
Banned user
Pridružen: 20.Travanj/Apr.2010 Status: Offline Points: 81 |
Opcije posta
Thanks(0)
Citiraj Odgovor
Objavljeno: 27.Studeni/Nov.2010 u 18:57 |
|
Yutaka Emura, autor EmEditor-a misli da može; bio je ljubazan da mi napravi ovaj makro
============================================================= |
|
![]() |
|
XYZ
Profil člana
Pronađi sve prevode
Pošaljite privatnu poruku
Pronađi postove člana
Dodaj na listu prijatelja
Banned user
Pridružen: 20.Travanj/Apr.2010 Status: Offline Points: 81 |
Opcije posta
Thanks(0)
Citiraj Odgovor
Objavljeno: 01.Prosinac/Dec.2010 u 11:32 |
|
Najzad, opet uz ljubaznost gdina Yutake, evo konačnog rešenja što se ovog makroa tiče. Gornji makro se najpre mora popraviti ako se koriste verzije EmEditor-a ranije od 10. Sve se ,što sledi, odvijalo na forumu koji gdin Yutaka izgleda potpuno sam vodi na svom sajtu.
Najpre, kako se snimaju, čuvaju i koriste napravljeni makroi =========================================== Hi snovic, You shouldn't use the macro recorder when you use my macro. Please open a new file, paste the above macro, and save it as "a.jsee". Please select "Select..." on the Macros menu to select this macro (a.jsee). Then open a .xsb file, and click "Run Macro a.jsee" on the Toolbar. I hope this helps. ---------------- Yutaka Emura Developer of EmEditor http://www.emeditor.com/ ======================================================= Sa gornjim makroom je bilo problema (nije radio) jer koristim stariju 7.01 verziju EmEditora. A evo i rešenja problema ============================================= Hi snovic, eeFindSaveHistory is a new flag introduced on new version of EmEditor. I recommend you use the latest version of EmEditor, currently v10. If you need to use an old version, please remove "eeFindSaveHistory | " from the macro. Thank you, ---------------- Yutaka Emura Developer of EmEditor http://www.emeditor.com/ ========================================== Dakle, nakon ove Yutakine intervencije, konačni oblik ovog makroa za ranije verzije EmEditor-a je +++++++++++++++++++++++++++++++++++++++ document.selection.StartOfDocument(false); document.selection.Find("^\\s*?<L>.*?</L>",eeFindNext | eeFindAround | eeFindReplaceRegExp); document.selection.CharLeft(false,1); document.selection.StartOfDocument(true); document.selection.Delete(1); document.selection.EndOfDocument(false); document.selection.Find("<L>.*?</L>\\s*?$",eeFindPrevious | eeFindAround | eeFindReplaceRegExp); document.selection.CharRight(false,2); document.selection.EndOfDocument(true); document.selection.Delete(1); document.selection.Replace("^\\s*?<L>(.*?)</L>\\s*?$","\\1",eeFindNext | eeReplaceAll | eeFindReplaceRegExp); ++++++++++++++++++++++++++++++++++++++ Radi savršeno. Time je, bar što se mene tiče, ova tema konačno završena. Ažurirao XYZ - 01.Prosinac/Dec.2010 u 13:22 |
|
![]() |
|
Odgovori
|
|
| Pređi na drugi Forum | Forumska ovlašćenja ![]() Vi ne možete objavljivati nove teme na ovom forumu Vi ne možete odgovarati na teme Vi ne možete brisati vaše poruke Vi ne možete urediti svoje poruke Vi ne možete dodati anketu Vi ne možete glasati u anketi |