NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
evilincz
Člen
Avatar
evilincz:23.1.2017 21:09

Zdravím
Vyvíjím hru(textovou v konzoli) a rychle po sobě jsem narazil na dva problémy,ten první a hádám že i jednoduší je: když nechám např. uživatele napsat něco co pak uložím do proměnné a je to příliš dlouhé tak poté když to nechám vypsat tak slovo co je na konci řádku třeba "kolo" se rozdělí na k(na prvním řádku)a olo(na druhém) což vipadá hloupě takže bych potřeboval aby se to místo rozdělování rovnou hodilo na druhý řádek(vím že je to asi banalita ale sám sem na to nebyl schopný přijít :-) )
no a ten druhý problém bude asi horší ponechejme situaci že hráč něco napíše nejlépe jedno slovo což bude třeba opět "kolo" :-) no a já bych potřeboval aby se to převedlo jako kolo(); tím to zavolalo
void kolo()
{
//zde můj geniální kod :-)
}
snad je to alespoň trochu k pochopení a ještš bych dodal že sice nejsem úplně začátečník ale mistr také ne :-)
předem díky za pomoc

 
Odpovědět
23.1.2017 21:09
Avatar
Odpovídá na evilincz
Marek Chalupa:23.1.2017 21:16

A takhle by to třeba udělat nešlo?

if input == "kolo"
        kolo();
 
Nahoru Odpovědět
23.1.2017 21:16
Avatar
evilincz
Člen
Avatar
Odpovídá na Marek Chalupa
evilincz:23.1.2017 21:23

to bych ale musel mít pro každé slovo vzlášť a vzhledem k tomu že jich bude hodně bylo by to až moc přepodmínkované :-)

 
Nahoru Odpovědět
23.1.2017 21:23
Avatar
Odpovídá na evilincz
sadlomaslox25:23.1.2017 21:41
  1. napr. retezec rozdelis na pole subretezcu pro kazdou mezeru a na kazdy radek pak veznes tolik subretescu dokud soucet delek + mezer neni vetsi jak velikost radku coz je nejspis Console.Height nebo neco podobneho
  2. jde to pres reflexy ale to je presne ta vec, kterou delat nechces :). chces si udelat nejspis navrhovy vzor strategie pripadne nejake kombo se switchem.
 
Nahoru Odpovědět
23.1.2017 21:41
Avatar
Odpovídá na sadlomaslox25
Jiří Hlaváček:24.1.2017 17:45

Nevím jestli správně chápu použití návrhového vzoru strategie, ale pokud to má fungovat na základě textového vstupu od uživatele, tak volba strategie by stejně musela být vybrána programově přes větvení - ideálně switch, ne?

 
Nahoru Odpovědět
24.1.2017 17:45
Avatar
pocitac770
Tvůrce
Avatar
pocitac770:24.1.2017 18:13

//neumím číst, kousek výš někdo napsal to samý :D

Editováno 24.1.2017 18:14
 
Nahoru Odpovědět
24.1.2017 18:13
Avatar
Petr Čech
Tvůrce
Avatar
Petr Čech:24.1.2017 18:56

Pokud potřebuješ volat funkci, jejíž jméno budeš mít ve stringu, je něco špatně s návrhem. Ano, jde to udělat přes již zmíněnou reflexi, ale tohle není úplně ten případ, kdy bys to měl použít. Co můžeš použít místo toho je to, že

  • uděláš Dicitionary<strin­g,Action>
  • naplníš to klíči, což budou ty jména fcí, co budeš volat a hodnoty budou lambda ukazující na konkrétní metody, popř. to budou prostě jen anonymní funkce
dict.add("kolo",()=> this.Kolo());

to potom použiješ tak, že zavoláš

dict["kolo"].Invoke();

a to bude mít kýžený výsledek s větší flexibilitou

Nahoru Odpovědět
24.1.2017 18:56
the cake is a lie
Avatar
evilincz
Člen
Avatar
Odpovídá na Petr Čech
evilincz:24.1.2017 20:26

Buď jsem to špatně pochopil nebo se to nedá uplatnit na moji situaci jde o to že v té hře budeš na nějakém místě a např. 3 cesty dál ty si jednu z nich vypereš a to tě pošle do příslušného void() kde bude zace další oblast s tím že to se provádí mimo ten void kde jsou informace o oblasti bylo by to už přeplácené tam by měla být jen informace o tom že cesta 3 vede do les01()
snad je to pochopitelné,dost špatně se to popisuje :-)

 
Nahoru Odpovědět
24.1.2017 20:26
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na evilincz
Petr Čech:24.1.2017 21:00

Celé je to jedna neuspořádaná kupa slov. Zkus použít interpunkci a členění do vět, možná to potom bude pochopitelnější. Nebo nakresli obrázek, ale já ani trochu nepochopil, o co se snažíš.

Nahoru Odpovědět
24.1.2017 21:00
the cake is a lie
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na evilincz
Petr Šťastný:24.1.2017 21:12

7 vterin hledani na googlu...

http://stackoverflow.com/…d-of-letters

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
24.1.2017 21:12
Avatar
evilincz
Člen
Avatar
Odpovídá na Petr Šťastný
evilincz:24.1.2017 21:30

Díky funguje :-)

 
Nahoru Odpovědět
24.1.2017 21:30
Avatar
evilincz
Člen
Avatar
Odpovídá na Petr Čech
evilincz:24.1.2017 21:32

Obrázek by to asi nevystihl dal bych kod ale to by bylo ještě nesrozumitelnější tak radši zůstanu u těch podmínek

 
Nahoru Odpovědět
24.1.2017 21:32
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 12 zpráv z 12.