Talaan ng mga Nilalaman:

Mga Link Mula sa Mga variable sa Twine With Sugarcube: 10 Hakbang
Mga Link Mula sa Mga variable sa Twine With Sugarcube: 10 Hakbang

Video: Mga Link Mula sa Mga variable sa Twine With Sugarcube: 10 Hakbang

Video: Mga Link Mula sa Mga variable sa Twine With Sugarcube: 10 Hakbang
Video: Purpose of @staticmethod and @classmethod in Python classes ๐Ÿ #shorts #python 2024, Nobyembre
Anonim
Mga Link Mula sa Mga variable sa Twine With Sugarcube
Mga Link Mula sa Mga variable sa Twine With Sugarcube

Natutuwa akong sumama ka ulit sa akin! Nangangahulugan ito na hindi ka pa kinakain ng Wumpus. Mabuti!

Para sa iyo na hindi pamilyar, ito ay isang hanay ng mga tutorial na ginagawa ko upang matulungan ang aking kaibig-ibig na oochy-skootchy biyudo na pinsan sa kanyang nakatatandang proyekto. Ang mga tutorial na ito ay sinadya upang maging isang sanggunian para sa kung ano ang maaari mong gawin sa ilan sa mga tampok sa programa ng Twine at Sugarcube. Kung nais mong sundin, maaari mong makita ang unang tutorial dito.

Sa huling tutorial, nagtayo ako ng isang maliit na hanay ng mga silid na maaaring tuklasin ng manlalaro. Nagdagdag ako ng isang bagay na Wumpus, at gumawa ng isang generic room code upang mabago kung ano ang ipinakita sa bawat silid depende sa kung nasaan ang Wumpus.

Hakbang 1: Lumikha ng Iyong Player

Lumikha ng Iyong Player
Lumikha ng Iyong Player

Ang hakbang na ito ay napaka-simple. Mahalaga na gumagamit lamang ako ng parehong code tulad ng aking $ wumpus, ngunit sa halip ay may variable na $ player.

Hakbang 2: Bagong Room Code

Bagong Room Code
Bagong Room Code

Binago ang iyong generic room code kaya't ang halaga ng $ player ay ang kasalukuyang silid. Pagkatapos ihambing ang $ wumpus sa $ player sa halip na ang kasalukuyang silid.

Ito ay isang maliit na pagbabago, at hindi lubos na kinakailangan, ngunit nais kong panatilihing maayos ang aking code.

Hakbang 3: Lumilikha ng isang Link Mula sa isang variable

Lumilikha ng isang Link Mula sa isang Variable
Lumilikha ng isang Link Mula sa isang Variable

Sa wakas, nais na palitan ang link sa aking panimulang silid sa isa na nagbabago batay sa halagang $ player. Maaari itong magawa sa "" function sa Sugarcube. Maaari mong basahin ang higit pa tungkol doon sa pahina ng dokumentasyon ng Sugarcube.

Ang unang string pagkatapos ng aming utos ay ang parirala na lilitaw sa aming daanan. Ang pangalawa ay ang pangalan ng daanan na nais naming maiugnay. Gumagamit ako ng "Hunt the Wumpus!" bilang aking parirala, ngunit maaari naming gamitin ang aming variable doon kung nais naming malaman ng manlalaro kung saan sila pupunta bago, tulad nito:

Hakbang 4: Pagsubok

Pagsusulit
Pagsusulit
Pagsusulit
Pagsusulit

Kapag sinubukan mo ang iyong code, dapat mong malaman na ang iyong link ay napalitan ng anumang parirala na isinulat mo dati. Dadalhin ka ng pag-click sa isang random na silid sa iyong laro.

Sa kasamaang palad, maaari ka din nitong madadala diretso sa silid ng Wumpus! Hindi mahalaga iyon ngayon, ngunit sa isang totoong laro na magiging instant na laro. Kailangan nating ayusin iyon.

Hakbang 5: Magdagdag ng Listahan ng Silid

Magdagdag ng Listahan ng Silid
Magdagdag ng Listahan ng Silid

Una, lilikha kami ng isang listahan ng silid, upang gawing mas madali ang pamamahala ng mga silid. Sa pamamagitan ng pagdedeklara ng array na ito, magagamit namin ito upang maitakda ang aming mga halagang $ player at $ wumpus nang hindi inuulit ang code. Mayroon din itong isa pang kalamangan na susuriin namin sa susunod.

Ang pagsubok sa code na ito ay dapat na kumilos tulad ng dati.

Hakbang 6: Pag-aalis ng Mga Kwarto

Pag-aalis ng Mga Kwarto
Pag-aalis ng Mga Kwarto

Nagdagdag ako ng isang solong linya ng code sa code mula noong dati (naka-highlight).

Ang mga array sa Sugarcube ay may built-in na pagpapaandar na hinahayaan kang matanggal ang mga elemento mula sa kanila ayon sa pangalan. Sa kasong ito, sa sandaling magtalaga kami ng $ wumpus sa isang silid, maaari naming tanggalin ang silid na iyon mula sa aming $ roomlist. Ang pagpapaandar na ito ay nakakalikot, gayunpaman. Hindi ito gagana maliban kung ang output ng pagpapaandar ay itinalaga o ginamit sa ilang paraan. Upang mapangalagaan iyon, nilikha ko ang pansamantalang variable na _temp.

Sa Sugarcube, ang mga pansamantalang variable ay nagsisimula sa isang underscore (_) sa halip na isang dolyar ($). Kapaki-pakinabang ang mga ito dahil natanggal ang mga ito kapag naipatakbo ang daanan, kaya't hindi ka dapat magalala tungkol sa magkakapatong na mga variable na pangalan.

Tinatanggal ko ang $ player room mula sa $ roomlist din, bilang isang kurso lamang.

Hakbang 7: Pagsubok

Pagsubok
Pagsubok
Pagsubok
Pagsubok

Habang maaari naming patakbuhin ang code tulad ng ngayon, hindi iyon magiging isang masusing pagsusuri. Kung patakbuhin namin ang code at malaman na ang $ player at $ wumpus ay nakatalaga sa iba't ibang mga silid, hindi namin alam kung iyon dahil gumagana ang code, o kung pagkakataon lamang ito. Oo naman, maaari naming patakbuhin ang code nang maraming beses, at ipalagay na kung hindi ito magtatalaga sa kanilang pareho ng parehong silid na hindi nito gagawin, ngunit tatagal ito magpakailanman at hindi pa rin ito isang 100% katiyakan na hindi ito maaaring mangyari.

Sa halip, kailangan namin ng isang paraan upang suriin.

Nagdagdag ako ng tatlong mga linya sa tuktok ng aming intro na daanan na hahayaan kaming makita ang mga halaga ng aming $ wumpus, $ player, at $ roomlist na mga variable. Dahil sa paraan ng pag-set up namin ng aming code, alam namin na ang $ wumpus room at $ player room ay dapat na alisin mula sa $ roomlist.

Kapag pinatakbo namin ang code na ito, maaari naming suriin upang matiyak na iyon ang kaso.

Hakbang 8: Mga Kakatwa Sa Sugarcube at Mga Bagay

Mga Kakatwa Sa Sugarcube at Mga Bagay
Mga Kakatwa Sa Sugarcube at Mga Bagay
Mga Kakatwa Sa Sugarcube at Mga Bagay
Mga Kakatwa Sa Sugarcube at Mga Bagay
Mga Kakatwa Sa Sugarcube at Mga Bagay
Mga Kakatwa Sa Sugarcube at Mga Bagay

Ang mga bagay na Sugarcube ay medyo kakaiba. Hayaan mo akong ipakita ito.

Habang itinatayo ko ang proyektong ito nang orihinal, nais kong i-save ang aking $ roomlist sa isang variable na $ saveroom bago ko simulang tanggalin ang mga silid mula rito. Naisip ko na madaling magamit ito sa paglaon.

Nang makakuha ako ng kakaibang pag-uugali mula sa code na ito, nagdagdag ako ng isa pang linya sa aking pahina ng intro upang hayaan akong tumingin sa aking variable na $ saveroom (pangalawang larawan).

Nagulat ako nang malaman na ang mga elemento na tinanggal ko mula sa $ roomlist ay tinanggal din mula sa aking nai-save na listahan! Maaari mo itong makita sa aksyon sa pangatlong larawan.

Ito ay sapagkat kapag kumopya ka ng isang array na tulad nito, hindi mo talaga sinasabi sa Twine na kopyahin ang array, sinasabi mo sa Twine na ang dalawang variable na ito ay magkatulad na array. Kapag gumawa ka ng isang bagay sa array gamit ang isang variable, binabago nito ang parehong array na tinitingnan ng iba pang variable!

Maaari naming ayusin ito sa pag-andar ng clone ().

Hakbang 9: Ang Pag-andar ng () Pag-andar

Ang I-clone () Function
Ang I-clone () Function
Ang I-clone () Function
Ang I-clone () Function

Maaari mong basahin ang tungkol sa paggana ng () paggana sa pahina ng dokumentasyon ng Sugarcube.

Isang "mababaw" na kopya ang ginagawa namin dati. Sa halip na gumawa ng isang kumpletong kopya ng buong array, ipinapalagay lamang na ang iyong variable ay gumagana sa parehong array. Sa halip na isang mababaw na kopya, ang clone () ay gumagawa ng isang "malalim" na kopya, na kumikilos tulad ng inaasahan mo. Ang bawat elemento ng array ay nakopya sa isang bagong array, at ganap na hiwalay mula sa orihinal.

Kung susubukan namin ang bagong code na ito, nalaman naming gumagana ito ayon sa inaasahan.

Siyempre, hindi mahalaga kung panatilihin mo ang $ roomlist o hindi. Para sa mga hangarin ng aking proyekto, hindi ako pupunta. Ito ay upang ipakita lamang ang malalim kumpara sa mababaw na mga kopya.

Hakbang 10: Para Ito Ngayon

Iyon Ito para sa Ngayon!
Iyon Ito para sa Ngayon!

Nagdagdag kami ng code na hinahayaan ang aming manlalaro na magsimula sa isang random na silid. Bilang karagdagan sa na, tinanggal namin ang isang bug kung saan ang manlalaro ay magsisimula sa parehong silid tulad ng Wumpus.

Nalaman namin ang tungkol sa kung paano lumikha ng mga link mula sa mga variable, at kung paano ginagamot ng Sugarcube ang pagkopya ng array.

Ang mga bagay ay ramping up, ngunit nagsisimula pa lang kami!

Maligayang pangangaso!

Inirerekumendang: