Přejít na obsah


Fotka

Jak to udělám v URWIGO?


  • Zamčené téma Toto téma je zamknuto
787 odpovědí na toto téma

#21 me2d09

me2d09

    Advanced Member

  • Members
  • PipPipPip
  • 174 příspěvků(y)

Publikováno 04 únor 2010 - 11:51

Aby se po špatné odpovědi zeptalo wherigo znovu, vloží se do větve jinak znovu žádost o vstup (je to i v tom maacově odkazu, ale tady je jen to podstatné).

Přiložené miniatury

  • iput.png

  • 0

#22 bobrb

bobrb

    Advanced Member

  • Members
  • PipPipPip
  • 322 příspěvků(y)

Publikováno 04 únor 2010 - 11:56

ZCh napsal/a:
- vstup při získání odpovědi testuje, zda byla správná odpověď
--> ANO - pak provedu akce které umožňují hráči pokračovat dál (aktivuji/zviditelním další zónu, zaškrtnu splnění úkolu, dám mu předmět...) a současně deaktivuji příkaz "Otázka pro postavu"
--> NE - pak hráči hodím zprávu "To je ale blbě...." a hráč je donucen se postavy zeptat znova kliknutím na příkaz "Zeptat se postavy" (tzn. cyklus vůbec neprogramuji, ale hráč ho realizuje svým chováním)

Me porad nejde do hlavy ta vetev kdy se vyhodnoti NE - viz obrazek o jedno vyse...
  • 0

#23 bobrb

bobrb

    Advanced Member

  • Members
  • PipPipPip
  • 322 příspěvků(y)

Publikováno 04 únor 2010 - 12:02

me2d09 napsal/a:
Aby se po špatné odpovědi zeptalo wherigo znovu, vloží se do větve jinak znovu žádost o vstup (je to i v tom maacově odkazu, ale tady je jen to podstatné).

To ale znamena, ze za tim vstupem v kdyz musim zase delat porovnani odpovedi a vyhodnoceni spravnosti. A pokud je to zase spatne tak vlozit do kdyz zase ten vstup a tak az do zblbnuti...
Ja toziz evidentne hledam neco jako prikaz GOTO z Basicu :-) To je taky naposledy co jsem neco psal...
  • 0

#24 ZCh

ZCh

    Advanced Member

  • Members
  • PipPipPip
  • 114 příspěvků(y)

Publikováno 04 únor 2010 - 12:05

bobrb napsal/a:
Me porad nejde do hlavy ta vetev kdy se vyhodnoti NE - viz obrazek o jedno vyse...


Wherigo nemá (a ani nemusí mít) cyklus.
Doporučuji se trochu kouknout na filosofii chování playeru, kterou (zřejmě ne příliš dobře) popisuji na konci článku http://www.wherigo.c...-utrob-playeru/

ZCh
  • 0

#25 me2d09

me2d09

    Advanced Member

  • Members
  • PipPipPip
  • 174 příspěvků(y)

Publikováno 04 únor 2010 - 12:15

A jak ZCh správně podotknul, nejedná se o cyklus, ale o spíš rekurzi (vnořené volání toho samého). Pokud bych chtěl udělat cyklus (lua to umí, urwigo diagramem přímo ne, protože to není potřeba), použiji k tomu uživatelský skript. Přikládám takovou malou ukázku co jde v URWIGU jednoduše udělat. (pokud si to chcete naprogramovat, vytvořte proměnou moje_pi a nastavte její identifikátor na moje_pi, jinak vám to nebude fungovat!)

Přiložené miniatury

  • pi.png

  • 0

#26 me2d09

me2d09

    Advanced Member

  • Members
  • PipPipPip
  • 174 příspěvků(y)

Publikováno 04 únor 2010 - 12:21

bobrb napsal/a:
To ale znamena, ze za tim vstupem v kdyz musim zase delat porovnani odpovedi a vyhodnoceni spravnosti. A pokud je to zase spatne tak vlozit do kdyz zase ten vstup a tak az do zblbnuti...

Ale ne :) to zblbnutí nic dělat nemusíš, stačí to přesně jak jsem to ukázal na screenshotu. Volá se vnořeně ten samý input (Cislo). Prostě při správné odpovědi se ta funkce zavolá znovu. Můžeš si to představit jako že je tam goto začátek, ale ve skutečnosti to tak vůbec nefunguje (je to vnořená funkce, takže se to kupí na zásobníku a jde z toho teoreticky předat ven parametr). Příkaz goto se už v běžných programovacích jazycích nepoužívá kvůli přehlednosti a koncepci programování, v lua to ani nejde.
  • 0

#27 bobrb

bobrb

    Advanced Member

  • Members
  • PipPipPip
  • 322 příspěvků(y)

Publikováno 04 únor 2010 - 12:30

Tak jsem to nejak vytvoril a zkusil a ono to opravdu funguje tak jak jsem chtel. Sice jeste nevim presne proc, ale budu se v tom stourat dal:-) Problem je hlavne v tom, ze jsem programoval naposledy neco jednoducheho naposledy na nejakem osmibitu a tam si zazil slavny a nenavideny prikaz GOTO. Ted se ho v podstate musim odnaucit a to bude chvili problem V me logice (viz 04.02.2010 12:02) bych tu rekurzi potreboval vlastne donekonecna ale ono to fakt funguje bez ni:-) Obema diky moooooooooooc
  • 0

#28 ZCh

ZCh

    Advanced Member

  • Members
  • PipPipPip
  • 114 příspěvků(y)

Publikováno 04 únor 2010 - 12:30

me2d09 napsal/a:
Pokud bych chtěl udělat cyklus...

Ovšem takový cyklus co popsal me2d09 v 99,.9 % případů potřebovat nebudete...

Je třeba rozlišovat, zda chci udělat cyklus:
- na úrovni chování hráče (tedy člověk s něčím neuspěje, tak to zkouší znova, a znova, až se konečně trefí...)
- nebo na úrovni programu (tzn. lua scriptu)

Ten "lidský" cyklus se dělá tak, že:
- člověk (hráč) provádí "GO TO" - tím že někam opětovně jde, stiskne talčítko odpovídající naprogramovanému příkazu pro postavu či předmět, ...
- a na úrovni Wherigo programujeme jenom podmínku pro ukončení cyklu

Takže z hlediska konstrukcí běžně dostupných v builderu - ať klasickém, nebo URWIGO - stačí jen příkaz typu IF

ZCh
  • 0

#29 bobrb

bobrb

    Advanced Member

  • Members
  • PipPipPip
  • 322 příspěvků(y)

Publikováno 04 únor 2010 - 12:39

me2d09 napsal/a:
Ale ne :) to zblbnutí nic dělat nemusíš, stačí to přesně jak jsem to ukázal na screenshotu. Volá se vnořeně ten samý input (Cislo). Prostě při správné odpovědi se ta funkce zavolá znovu. Můžeš si to představit jako že je tam goto začátek, ale ve skutečnosti to tak vůbec nefunguje (je to vnořená funkce, takže se to kupí na zásobníku a jde z toho teoreticky předat ven parametr). Příkaz goto se už v běžných programovacích jazycích nepoužívá kvůli přehlednosti a koncepci programování, v lua to ani nejde.

Tak ted uz vim i proc to funguje:-)
  • 0

#30 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 04 únor 2010 - 15:34

Ahoj, na prezentaci jsem se už, bohužel, nevešel, ale urwigo jsem si stáhnul a je to perfektní, velké díky autorovi (autorům?). A teď dotaz: Před nedávnem jsem se seznámil s tzv. "locationless" wherigovkami. Dokonce jsem se dozvěděl, že se to dá napsat v LUA. Podporuje urwigo i locationless wheriga? A pokud ne, plánujete to někdy v budoucnu zapracovat? Díky za odpověď.
  • 0

#31 Maxinoha

Maxinoha

    Advanced Member

  • Members
  • PipPipPip
  • 1 177 příspěvků(y)

Publikováno 04 únor 2010 - 19:31

Publikoval jsem článek s video návodem Začínáme s URWIGO.
  • 0

#32 Maxinoha

Maxinoha

    Advanced Member

  • Members
  • PipPipPip
  • 1 177 příspěvků(y)

Publikováno 05 únor 2010 - 16:33

Publikoval jsem článek s video návodem Běháme s URWIGO
  • 0

#33 Dain & Olik

Dain & Olik

    Advanced Member

  • Members
  • PipPipPip
  • 3 704 příspěvků(y)

Publikováno 05 únor 2010 - 19:12

Maxinoha napsal/a:
Publikoval jsem článek s video návodem Běháme s URWIGO

taaaak, to je teda pekny .... ode dneska se bude vsude behat :D
  • 0

#34 ProKesTom

ProKesTom

    Advanced Member

  • Members
  • PipPipPip
  • 1 092 příspěvků(y)

Publikováno 05 únor 2010 - 21:53

Dovolím si nesouhlasit, že cyklus není potřeba. Rekurze má totiž tu nevýhodu, že je hrozně náročná na paměť. Pokud je zapojen lidský faktor, tak to uživatel asi vzdá včas. Ale pokud se cyklí strojově, může paměť dojít velice snadno. Asi by bylo vhodné ošetřit i možnost cyklus (byť realizovaný rekurzí) ukončit a třeba hru vzdát, uložit a nechat "na zítra". Moje dotazy: Jde jednoduše zjistit, jestli hráč opouštějící zónu v ní zanechal právě jen předmět, který do ní patří (aniž bych se musel ptát na všechny předměty zvlášť)? Třeba dotaz, kolik předmětů je v zóně, když jeden a je v ní ten pravý, je to OK. Kde lze použít MEDIA typu TEXT, když do ZPRAVA to nejde, do UZIVATELSKY KOD to nejde...?
  • 0

#35 matejcik

matejcik

    Advanced Member

  • Members
  • PipPipPip
  • 389 příspěvků(y)

Publikováno 05 únor 2010 - 22:02

ProKesTom napsal/a:
Dovolím si nesouhlasit, že cyklus není potřeba. Rekurze má totiž tu nevýhodu, že je hrozně náročná na paměť. Pokud je zapojen lidský faktor, tak to uživatel asi vzdá včas. Ale pokud se cyklí strojově, může paměť dojít velice snadno. Asi by bylo vhodné ošetřit i možnost cyklus (byť realizovaný rekurzí) ukončit a třeba hru vzdát, uložit a nechat "na zítra".


ale v běžných cartridgích nikdy nebudeš používat ani cyklus, ani rekurzi - rozhodně ne k tomu, aby ses znovu zeptal na špatně zodpovězenou otázku. ono to vypadá jako rekurze v urwigo diagramu, ale uvnitř žádná rekurze není, jen sekvenční volání funkcí:
1. nějaký event vyvolá Wherigo.GetInput(zinputMůjinput) - a skončí
2. input visí na obrazovce. lua stroj je v tu chvíli nečinný a na zásobníku nic není
3. uživatel napíše odpověď a klikne na tlačítko
4. v lua stroji se vyvolá metoda zinputMůjinput:OnGetInput("uživatelova odpověď")
5. tahle metoda porovná odpověď se správnou a pokud správná není, volá zase Wherigo.GetInput(zinputMůjinput) - načež zase skončí, na zásobníku zase nic není a čeká se na akci uživatele

cykly/rekurzi potřebuješ jedině v situacích, kdy zkoušíš programově generovat nějaká data, např. automaticky vytvářet zóny. a to si stejně musíš napsat ručně a tam ten cyklus napíšeš
  • 0
<reklama>OpenWIG - Wherigo player pro mobilní telefony</reklama>
"ty vaše kešky" jsou mi celkem ukradené :ep

#36 me2d09

me2d09

    Advanced Member

  • Members
  • PipPipPip
  • 174 příspěvků(y)

Publikováno 05 únor 2010 - 23:26

Díky matejcikovi za pěkné vysvětlení. Jinak pokud by někoho zajímala velikost zásobníku tak v emulátoru vyplivne Stack Overflow při 16379 volání a Oregon zatuhne v 12475 vnoření. Ale praktický význam je opravdu jen pro nějaké generování objektů a nebo nějaké výpočty.
  • 0

#37 ProKesTom

ProKesTom

    Advanced Member

  • Members
  • PipPipPip
  • 1 092 příspěvků(y)

Publikováno 06 únor 2010 - 11:50

Dík za objasnění "rekurze" ve WerIGu.

Jde jednoduše zjistit, jestli hráč opouštějící zónu v ní zanechal právě jen předmět, který do ní patří (aniž bych se musel ptát na všechny předměty zvlášť)? Třeba dotaz, kolik předmětů je v zóně, když jeden a je v ní ten pravý, je to OK.

Kde lze použít MEDIA typu TEXT, když do ZPRAVA to nejde, do UZIVATELSKY KOD to nejde...?
  • 0

#38 Maxinoha

Maxinoha

    Advanced Member

  • Members
  • PipPipPip
  • 1 177 příspěvků(y)

Publikováno 06 únor 2010 - 12:29

ProKesTom napsal/a:
Dík za objasnění "rekurze" ve WerIGu.

Jde jednoduše zjistit, jestli hráč opouštějící zónu v ní zanechal právě jen předmět, který do ní patří (aniž bych se musel ptát na všechny předměty zvlášť)? Třeba dotaz, kolik předmětů je v zóně, když jeden a je v ní ten pravý, je to OK.

Kde lze použít MEDIA typu TEXT, když do ZPRAVA to nejde, do UZIVATELSKY KOD to nejde...?


Ahoj, ptát se na všechny předměty zvlášť nemusíš, je přece více možností jak si něco ověřit, např. vytvořit si proměnou s hodnotou nepravda (false) a při "použití" předmětu správným způsobem proměnou změnit na pravda (true). Pak se jen dotazuje na stav této proměné.

Co se týče média typu TEXT tak tento "format" nabízel Wherigo Builder takže jej YourSelf dal i do URWIGA, ale to neznamená že jej musíš používat, takových věcí co se nikdy nepoužijí je více, ale pro zachování možnosti impotru LUA souborů vytvořených v Buildru zůstanou i v urwigu.

Možná by jsi měl zkusit vytvořit nějakou wherigo keš a řešit jak udělat to co potřebuješ v cartridge než zkoumat různé funkce urwiga k čemu jsou když je ani nevyužiješ - abysme se taky dočkali nějaké nové wherigo keše :D

Přiložené miniatury

  • promena.jpg

  • 0

#39 ZCh

ZCh

    Advanced Member

  • Members
  • PipPipPip
  • 114 příspěvků(y)

Publikováno 06 únor 2010 - 12:54

ProKesTom napsal/a:
Jde jednoduše zjistit, jestli hráč opouštějící zónu v ní zanechal právě jen předmět, který do ní patří.

Ve vlastním playeru neexistuje žádný atribut předmětu (ani postavy), který by definoval správnou příslušnost do konkrétní zóny.
Při definici předmětu/postavy sice můžu zadat jeho lokaci do konkrétní zóny, nicméně to je jen jeho výchozí poloha při startu hry.
Takže žádný z builderů pochopitelně nemá nějaký konkrétní mechanismus pro testování zda předmět/postava je ve správné zóně.

Takže pokud něco takového potřebuješ, musíš si to naprogramovat sám.
Tzn. u zóny kam "předmět patří" (píši schválně v uvozovkách, abych ještě jednou zdůraznil, že tohle už je zcela definováno tvůrcem hry a player nedisponuje pro tohle žádným mechanismem) do události Při opuštění vložím test zda je tam opravdu ten předmět, který tam coby tvůrce hry chci mít

ProKesTom napsal/a:
Kde lze použít MEDIA typu TEXT, když do ZPRAVA to nejde, do UZIVATELSKY KOD to nejde...?

Jak už napsal Maxinoha - je to z důvody kompatibility s originálním Builderem.
Přestože lze média tohoto typu použít coby obrázek nebo ikonku u zóny, předmetu a postavy, nechápu smysl tohoto použití - leda snad že by někdo vytvořil pouze textový (negrafický) player ?
  • 0

#40 Etigo

Etigo

    Advanced Member

  • Members
  • PipPipPip
  • 215 příspěvků(y)

Publikováno 06 únor 2010 - 13:09

Rozhodně nějaká nová wherigovka se objeví. :) O tobych strach neměl. Právě, že pár dní jsem si s tím hrál, zkoušel to pochopit, a teď zkouším svojí první whergo keš. B) Ale přemýšlím, jak se liší jednotlivé typy aktivit jako: Průvodce, Puzzle, Fikce a Geocache? A další, jaký smysl má Start. Je to asi jenom takový informační bod, ze? Jinak se též přimlouvám za více videonávodů. :D
  • 0




0 uživatel(ů) prochází toto téma

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

Reklama