Мазмуну:

Sagarcube менен жиптен өзгөрмөлөрдөн алынган шилтемелер: 10 кадам
Sagarcube менен жиптен өзгөрмөлөрдөн алынган шилтемелер: 10 кадам

Video: Sagarcube менен жиптен өзгөрмөлөрдөн алынган шилтемелер: 10 кадам

Video: Sagarcube менен жиптен өзгөрмөлөрдөн алынган шилтемелер: 10 кадам
Video: Tığ İşi Çapraz Çanta Öğretici / Crochet Bag Handle #diy 2024, Ноябрь
Anonim
Шакирт менен жиптин өзгөрмөлөрүнөн алынган шилтемелер
Шакирт менен жиптин өзгөрмөлөрүнөн алынган шилтемелер

Мага дагы кошулганыңызга абдан кубанычтамын! Бул Wumpus сени азырынча жеген жок дегенди билдирет. Жакшы!

Тааныш болбогондор үчүн, бул менин сүйкүмдүү оочи-скотчтуу видер жеңеме анын чоң долбоору менен жардам берүү үчүн жасап жаткан окуу куралдар жыйнагы. Бул окуу куралдары Twine жана Sugarcube программалоо өзгөчөлүктөрүнүн айрымдары менен эмне кыла алаарыңызга багытталган. Эгерде сиз ээрчүүнү кааласаңыз, бул жерде биринчи окуу куралын таба аласыз.

Акыркы үйрөтмөдө мен оюнчу изилдей турган бөлмөлөрдүн чакан топтомун курдум. Мен Wumpus объектисин коштум жана Wumpus турган жерге жараша ар бир бөлмөдө көрсөтүлгөн нерсени өзгөртүү үчүн жалпы бөлмөнүн кодун жасадым.

1 -кадам: Сиздин оюнчу түзүү

Сиздин оюнчу түзүү
Сиздин оюнчу түзүү

Бул кадам абдан жөнөкөй. Негизи мен $ wumpus менен бир эле кодду колдонуп жатам, бирок анын ордуна $ player өзгөрмөсү бар.

2 -кадам: Жаңы бөлмө коду

Жаңы бөлмө коду
Жаңы бөлмө коду

Бөлмөнүн жалпы кодун өзгөрттүңүз, ошондуктан $ player мааниси учурдагы бөлмө. Анда $ wumpus'ту азыркы бөлмөнүн ордуна $ playerке салыштырыңыз.

Бул кичинекей өзгөрүү, жана таптакыр кереги жок, бирок мен кодду иретке келтирүүнү жакшы көрөм.

3 -кадам: Өзгөрмөдөн шилтеме түзүү

Өзгөрмөдөн шилтеме түзүү
Өзгөрмөдөн шилтеме түзүү

Акыр -аягы, менин баштапкы бөлмөмдөгү шилтемени $ playerдин наркына жараша өзгөргөнгө алмаштыргым келет. Бул Sugarcubeдагы "" функциясы менен жасалышы мүмкүн. Бул тууралуу Sugarcube'дун документтер барагынан окуй аласыз.

Биздин буйруктан кийинки биринчи сап - бул биздин үзүндүбүздө пайда боло турган сөз айкашы. Экинчиси, биз шилтемелеген үзүндүнүн аты. Мен "Wumpus Hunt!" Колдонуп жатам. Менин фразам катары, бирок биз оюнчу кайда баратканын алдын ала билишин кааласак, анын ордуна биз өзгөрмөнү колдоно алабыз:

4 -кадам: Тест

Тест
Тест
Тест
Тест

Сиз кодуңузду текшергенде, сиздин шилтемеңиз мурда жазылган сөздөр менен алмаштырылганын билишиңиз керек. Аны басуу менен оюнуңуздагы туш келди бөлмөгө киресиз.

Тилекке каршы, бул сизди түз эле Wumpus бөлмөсүнө алып бара алат! Бул азыр анча деле мааниге ээ эмес, бирок чыныгы оюнда ал тез эле бүтөт. Биз муну оңдошубуз керек.

5 -кадам: Бөлмөнүн тизмесин кошуу

Бөлмөнүн тизмесин кошуу
Бөлмөнүн тизмесин кошуу

Биринчиден, биз бөлмөлөрдүн тизмесин түзүп, бөлмөлөрдү башкарууну жеңилдетебиз. Бул массивди жарыялоо менен, биз кодду кайталабастан $ player жана $ wumpus баалуулуктарыбызды орнотуу үчүн колдоно алабыз. Анын дагы бир артыкчылыгы бар, биз аны кийинкиде изилдейбиз.

Бул код менен тестирлөө мурункудай болушу керек.

6 -кадам: Бөлмөлөрдү жок кылуу

Бөлмөлөрдү жоюу
Бөлмөлөрдү жоюу

Мен коддон мурунку коддун бир сабын коштум (баса белгиленген).

Sugarcube массивдеринде элементтерди аты менен жок кылууга мүмкүндүк берген камтылган функция бар. Бул учурда, $ wumpus бөлмөсүн дайындагандан кийин, биз $ roomlistибизден ошол бөлмөнү өчүрө алабыз. Бирок, бул функция татаал. Функциянын чыгышы кандайдыр бир жол менен дайындалмайынча же колдонулбаса иштебейт. Буга кам көрүү үчүн, мен _temp убактылуу өзгөрмөсүн түздүм.

Sugarcubeде убактылуу өзгөрмөлөр доллардын ($) ордуна астын сызуу менен башталат (_). Алар пайдалуу, анткени алар өтмөктү иштеткенден кийин жок кылынат, андыктан өзгөрмөлүү аттардын бири -бирине кайчылаш келиши жөнүндө тынчсыздануунун кажети жок.

Мен $ playerlist бөлмөсүн $ roomlistден да жок кылам, албетте.

7 -кадам: Тестирлөө

Тестирлөө
Тестирлөө
Тестирлөө
Тестирлөө

Биз кодду азыркыдай иштете алганыбыз менен, бул өтө кылдат сыноо болмок эмес. Эгерде биз кодду иштетип, $ player менен $ wumpus башка бөлмөлөргө бөлүнгөнүн тапсак, анда бул код иштейби же бул жөн эле кокустукпу, билбейбиз. Албетте, биз кодду көп жолу иштете алабыз жана эгерде ал экөөнө тең эч качан бир бөлмөнү бербесе, бирок бул түбөлүккө созулат жана бул эч качан болбойт деп 100% кепилдик бербейт.

Анын ордуна, биз текшерүү үчүн бир жол керек.

Мен кириш үзүндүбүздүн чокусуна үч сап коштум, бул биздин $ wumpus, $ player жана $ roomlist өзгөрмөлөрүнүн маанилерин көрүүгө мүмкүнчүлүк берет. Биздин кодду кантип орнотконубуздан улам, $ wumpus бөлмөсү менен $ player бөлмөсүн $ roomlist тизмесинен алып салуу керек экенин билебиз.

Биз бул кодду иштеткенде, биз андай экенине ынануу үчүн текшере алабыз.

8 -кадам: Sugarcube жана объекттер менен кызыктар

Sugarcube жана объекттер менен кызыктар
Sugarcube жана объекттер менен кызыктар
Sugarcube жана объекттер менен кызыктар
Sugarcube жана объекттер менен кызыктар
Sugarcube жана объекттер менен кызыктар
Sugarcube жана объекттер менен кызыктар

Sugarcube объекттери бир аз кызыктай. Муну көрсөтүүгө уруксат этиңиз.

Мен бул долбоорду баштап жатканда мен бөлмөлөрдү өчүрө баштоодон мурун $ roomlist'имди $ saveroom өзгөрмөсүнө сактап койгум келди. Бул кийинчерээк пайдалуу болот деп ойлогом.

Бул коддон кандайдыр бир кызыктай жүрүм -турум болгондо, мен $ saveroom өзгөрмөмдү кароого уруксат берүү үчүн кириш баракчама дагы бир сапты коштум (экинчи сүрөт).

$ Roomlistтен өчүргөн элементтерим да сакталган тизмемден өчүрүлгөнүн көрүп таң калдым! Муну үчүнчү сүрөттө иш жүзүндө көрө аласыз.

Себеби, сиз мындай массивди көчүргөнүңүздө, сиз чындыгында Twineге массивди көчүрүүнү айтпайсыз, Twineге бул эки өзгөрмөнүн бир эле массив экенин айтып жатасыз. Бир массивге бир өзгөрмөнү колдонуп, ал башка өзгөрмө карап жаткан массивди өзгөртөт!

Биз муну clone () функциясы менен оңдой алабыз.

9 -кадам: Clone () функциясы

Clone () функциясы
Clone () функциясы
Clone () функциясы
Clone () функциясы

Сиз clone () функциясы жөнүндө Sugarcube документтер бетинен окуй аласыз.

"Тайыз" көчүрмө - биз мурда кылып жүргөн нерсе. Бүт массивдин толук көчүрмөсүн жасоонун ордуна, ал сиздин өзгөрмөнүн ошол эле массив менен иштеп жатканын болжойт. Тайыз көчүрмөнүн ордуна clone () сиз күткөндөй иштеген "терең" көчүрмөсүн жасайт. Массивдин ар бир элементи жаңы массивге көчүрүлөт жана түпнускадан таптакыр бөлөк.

Эгерде биз бул жаңы кодду текшере турган болсок, ал күтүлгөндөй иштейт.

Албетте, сиз $ roomlistди сактайсызбы же жокпу, маанилүү эмес. Менин долбоорумдун максаттары үчүн, мен барбайм. Мунун баары терең vs. тайыз нускаларды көрсөтүү үчүн болгон.

10 -кадам: Бул азырынча

Бул азырынча!
Бул азырынча!

Биз оюнчубузду туш келди бөлмөдөн баштоого мүмкүндүк берген кодду коштук. Мындан тышкары, биз оюнчу Wumpus менен бир бөлмөдө баштала турган катаны жойдук.

Биз өзгөрмөлөрдөн шилтемелерди кантип түзүү керектигин жана массивди көчүрүү Sugarcube тарабынан кандайча иштээрин билдик.

Иштер тездеп баратат, бирок биз жаңыдан баштайбыз!

Бактылуу аңчылык!

Сунушталууда: