IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Зайчик
Člen
Avatar
Зайчик:3.12.2012 17:49

Hoj, hele mám takový problém potřebuju teď do školy napsat Karla a nevím jak na to. Když jsem to dělal v jazyce C tak sem nemusel vlastně nic řešit.. příkazy jsem psal za sebe a normálně to fungovalo :) ale v C# nevím jak bych udělal vlastně když napíšu víc příkazů naráz tak aby se provedli všechny ...

if(nejakejstring == "krok")
// tak se provede ten krok

no ale jak udělat aby fungovalo když zadám
krok
krok
krok
poloz
krok
krok
? nebo tak něco? asi bych to videl jako projektí nějakého Tboxu cyklem každý řádek nebo já nevím :D možná něco jako

while(nejakejstring != null)
{
    //.... ale tady vlastně nevím co bych jako jak načítat každej řádek textboxu...
}

Předem díky za pomoc.

Odpovědět
3.12.2012 17:49
Коммунизм для нашего будущего!
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Зайчик
David Jančík:3.12.2012 17:52

Si ty příkazy naskládej do listu a pak je projeď cyklem.

List<string> prikazy = new List<string>();
prikazy.Add("krok");
prikazy.Add("poloz");
prikazy.Add("krok");

foreach (string prikaz in prikazy)
...
Nahoru Odpovědět
3.12.2012 17:52
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Jančík
Зайчик:3.12.2012 18:05

jo to by mohlo jít dík

Nahoru Odpovědět
3.12.2012 18:05
Коммунизм для нашего будущего!
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Зайчик
matesax:3.12.2012 18:41

Já bych příkazy řešil pomocí enum - ukládal bych si int příkazu. Toto int bych pak používal k mapování...

 
Nahoru Odpovědět
3.12.2012 18:41
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:3.12.2012 19:26

Nezapomeň, že mu časem přibudou podmínky a rekurze. Místo seznamu bych raději hned od počátku použil strom. V tuto chvíli budou levé větve prázdné, ale to se brzy změní.

Nahoru Odpovědět
3.12.2012 19:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Зайчик
Člen
Avatar
Зайчик:3.12.2012 22:34

tak základ mám hotový (krok,vlevo,stě­ny,list) vše funguje skvěle... ale teď mám problém potřebuju "když zadám příkaz polož" tak aby mi to vlastně položilo cihlu... v C jsem to dělal přes pole že sem zapsal bod XY do pole a při každém kroku jsem pole vykresloval... v C# bohužel mi tohle asi neprojde jelikož pohybuju vlastně obrázkem 45x45... přemýšlel jsem že bych vytvářel nové třeba picture boxy za běhu programu ale vůbec netuším jak takový objekt za běhu vytvořit... nikdy jsem to nedělal :( pomohl by mi někdo jak na to? Nebo jestli je nějaký jednoduší způsob?:)

Nahoru Odpovědět
3.12.2012 22:34
Коммунизм для нашего будущего!
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Зайчик
matesax:4.12.2012 9:01

Tak znovu - udělej si enum příkazů - a do listu si ukládej int položek. Toto int použij jako index v poli obrázků k vykreslení... Pokud by jsi chtěl víc než rozhodování, který obrázek vykreslit, tak větvi switchem...

 
Nahoru Odpovědět
4.12.2012 9:01
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Зайчик
David Hartinger:4.12.2012 10:54

Podobný problém se tu již řeší hrozně dlouho a překvapuje mě, co se tu vymýšlí. Pokud máš nějaký prostor v rovině, tak si na něj prostě udělej 2d pole. Na jednotlivá políčka si poté ukládej cihly, spínače, prostě co chceš. Jednoduchou funkcí nalezneš políčko před Karlem podle jeho pozice a směru. Na příkazy bych také použil enum. Jelikož jich je málo, jejich interpretace je triviální.

Nahoru Odpovědět
4.12.2012 10:54
New kid back on the block with a R.I.P
Avatar
Зайчик
Člen
Avatar
Зайчик:4.12.2012 21:53

Díky díky... už mám Karla hotového. Každopádně mám ještě jednu.. nesouvísející otázku. Mám v Resources obrázky a pomocí

this.icon1.BackgroundImage = global::Avocado.Properties.Resources.clock;

je měním. Ale je jich docela dost a potřeboval bych název načíst ze souboru... vlastne aby se načetlo global::Avoca­do.Properties­.Resources.cloc­k; a napsal bych jen

this.Icon1.BackgroundImage = mujstring;

Ale stringy mi to nebere poradil by mi někdo jak to udělat? :) Bylo mi řečeno že to jde :D ale nemám pomotí jak... hodně by ste mi pomohli kdyby mi někdo poradil. Díky

Nahoru Odpovědět
4.12.2012 21:53
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Odpovídá na Зайчик
Зайчик:4.12.2012 22:23

this.icon1.Bac­kgroundImage = (Image)Proper­ties.Resources­.ResourceMana­ger.GetObject("cloc­k"); aha :)

Nahoru Odpovědět
4.12.2012 22:23
Коммунизм для нашего будущего!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.