Pravidla Ucet
Nepřihlášen

Článek

Menu

Jak na proměnné by Some1
Napsal: DDL Blue
Přidáno: 06.09. 2010

Tento tutoriál není můj. Napsal ho (Nyní již neaktivní) Some1 (na fóru Le Maudit) před třemi lety, a za tu dobu se na tento tutoriál odkazovalo na každém pátém dotazu v poradně :). Řekl jsem si, že by měl být na očích nejlépe tady, tak jsem ho předělal do podoby pro homepage. Vhodný především pro začátečníky.

Vítejte v psaném tutorialu, který vás naučí pracovat s proměnnými. Je určen pro začátečníky, absolutní začátečníky a věčné začátečníky. Budeme se učit rovnou v GML, nebudu rozebírat výhody, je jich nepřeberně.



Co je to proměnná?



Proměnná uchovává (v paměti počítače) určitou hodnotu, nejčastěji číslo. Proměnná se v GML označuje téměř libovolným názvem. Nesmí se ale používat háčky, čárky, mezery a název nesmí být delší než 64 znaků. Proměnná může uchovávat buď číslo (real) nebo řetezec (string). Retěžcem se vpodstatě myslí text.

Jak pracovat s proměnnými?



1. Jak vytvořit proměnnou?



Prvním krokem většinou bývá deklarace proměnné. V oné deklaraci počítači vysvětlíme, jak se má proměnná nazývat a jaká má být její hodnota. Třeba takto:



prvni_promenna=10;


Počítač nyní ví, že proměnná se jménem "prvni_promenna" má hodnotu 10.

2. Můžu jí nějak měnit?



Ne, proměnná se nedá měnit.
Sami jste vytušili, že je to vtip. Již slovo "proměnná" naznačuje, že v měnění hodnoty proměnné bude zakopaný pes. Proměny - to je oč tu běží. Jaká by to byla hra, kdyby se neměnila? A co se mění, to je proměnné - jako proměnná. :) Hodnotu proměnné asi nejčastěji měníme pomocí operátorů pro sčítání ("+"), odčítání ("-"), násobení ("*"), a dělení ("/"). Možných způsobů zápisu je více:



promenna=promenna+10;


Zde si musíme poprvé uvědomit, že "=" má zde jiný význam nežli v matematice. Každý matematik totiž ví, že "a" se nerovná "a+10". Při změně hodnoty proměnných znaménko "=" znamená dosazení hodnoty vpravo do proměnné vlevo. Zde tedy říkáme, ať se proměnná nastaví na svojí hodnotu plus ještě deset k tomu. Znamená to, že se proměnná zvětší o deset. Můžeme to zapsat i jednodušeji:



promenna+=10;


Stane se úplně to samé jako v předchozím zápisu, ale je to kratší.

Odčítání, násobení a dělění probíhá pomocí příslušných operátorů analogicky.



A hodnotu nemusíme měnit jen o předem zadaná čísla, ale i o proměnné



promenna*=promenna2


(Vynásobí proměnné "promenna" a "promenna2" a výsledek dosadí do proměnné "promenna")

3. Proměnné jiných objektů



Jak jsme dosud psali, vše se konalo v jednom objektu, objektu, do kterého jsme umístili daný kód. Pokud by jsme chtěli použít proměnnou z jednoho objektu v jiném objektu, musíme zadat jeho název dle název_objektů.název_proměnné, např.



nasepromenna=o_sketa.x/1000


Říká se tu: proměnná ve vykonávajícím objektu "nasepromenna" se má nastavit na hodnotu proměnné "x", vydělenou tisícem, která patří objektu "o_sketa".



Pokud se mají nějaké proměnné používat na více místech hry, hodí se nám globální proměnné. Před název proměnné pak stačí psát "global.", takže třeba



global.skore=0;


Takováto proměnná nezanikne po zničení objektu a dá se používat všemi objekty.



4. Řetězcové proměnné



Tyto proměnné mají jako hodnoty namísto čísel texty. Deklarujeme je takto:



promenna="text";


Proměnná "promenna" má nyní hodnotu "text". Při práci s těmito proměnnými nejde odčítat, dělit, násobit. Jedinou povolenou operací z této "základní čtyřky" je sčítání. Příklad:



text1="Ahoj"
text2="Luzire"
text3=text1+", "+text2+".";


Proměnná text3 má nyní hodnotu "Ahoj, Luzire.".

5. Pole - indexované proměnné (array)



Indexované proměnné mají indexy. Uvedu rovnou příklad:



promenna[1]="Ondra";
promenna[2]="Zdeněk";
promenna[3]="Tomáš";
promenna[4]="Filip";
promenna[5]="Adrian";


vybrane_jmeno=promenna[4];


Hodnota proměnné "vybrane_jmeno" je nyní "Filip". Větší význam indexy mají, pokud namísto indexu napíšeme proměnnou:



index=choose(1,2,3,4,5);
vybrane_jmeno=promenna[index]


Funkce choose nám zde vybere číslo od jedné do pěti, a "vybrane_jmeno" se pak nastaví na proměnnou "promenna" s daným číslem jakožto indexem.



Může existovat i dvojité (dvojrozměrné) pole:



promenna[1,1]=1;
promenna[1,2]=1;
promenna[2,455]=1;


apod.

Pozn.: Indexované proměnné mají obrovský význam při použítí cyklů
.

K čemu mi jsou proměnné?

Ke všemu. ;) Bez proměnných se zkrátka neobejdeš.

Závěr



Uff, a to je zatím všechno. Byla to celkem velká práce, možná na jednoho člověka až moc velká, takže budu rád za vaše podklady na vylepšení, doplnění, opravení chyb apod. S proměnnými přece musí umět každý programátor i "programátor" v uvozovkách.








//DDL Blue - A ode mě je to taky všechno. Původní tutoriál můžete najít zde.
Klíčová slova: promÄ›nné var variable score zivoty zdravi naboje pocet hodnota mnozstvi Some1 Le Maudit
 

Komentáře:

Velkej Chytrák
Copyright (c) 2001-2010