Diskuze: Machr na algoritmy - Náhodný příběh RPG hry
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Vlastník

Zobrazeno 50 zpráv z 87.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
"Saťasovu 3D RPG"
To je ještě daleko, ještě nemáme ani finální verzi střílečky.
A přece bych nemohl Luckina nahradit nějakým náhodným algoritmem...
Nojo, vidíš, mám tě na tu hru moc fixovaného, hned ho tam doplním Luckin ti napíše kostru
algoritmu, je stále nenahraditelný
Tak 3D RPG jo? To je sakra velký sousto! Držím ti palce
Tu si může napsat sám, ale lepší příběh než já to nenapíše
vzhledem k složitosti předpokládám že tu nebude vysoká účást, ale nechci předpovídat. Třeba bude generátor dělat celý devbook.
Ono to nebude tak těžké, spíš to chce fantazii, než programátorské skills.
Musí tam být nějaké vstupy? Jako např. kde se bude hra odehrávat, a kolik levlů tam bude, nebo jde jen o to vytvořit náhodný příběh?
No, tak úplně totéž to není, ale pro tyhle účely
to jako hrubé zjednodušení postačí.
Jen pseudo3D - na enginu Nightmare3D, te hry, co jsme ji meli v soutezi Magicke leto.
Kit : Hehe, zrovna Draci Doupe jdeme hrát tuhle sobotu a Diablo
jsem už tak 2 měsíce nehrál, ale asi počkám až na nový rok, kdy mají
vydat větší patch na Diablo3
V tom tvém příkladu není možnost výběru. Má to být tedy RPG nebo textovka? V RPG si mohu svůj příběh rozvětvovat sám. V textovce by byl nalinkovaný od spuštění hry. Ale to by v tomto případě asi nevadilo, protože když to bude spojené s nějakou hrou, tak tam se bude odehrávat něco mezi. Já bych byl pro obyčejnou textovku.
Nic není pevně dané, pokud se ptáš na tohle. Prostě spustíš skript a měl by vypsat něco jako jsem uvedl v zadání. Spustíš ho podruhé a vypíše jiný příběh v jiném prostředí a jinými levely.
Je to RPG jak je zadáno, ale na funkci by to stejně nemělo mít vliv.
Tak abych šel vylepšovat <a
href="http://projekty.danvitek.cz/soutez-generator-vet/"
target="_blank">svůj generátor vět</a>
Cite sdraco: Můžete použít libovolný programovací jazyk
Kdysi jsem si něco takového v Javascriptu udělal. Bylo fajn, jak to bylo pekelně rychlé.
Tomu říkáš náhoný generátor vět , mně to vygenerovalo "Bílý malý
potkan mlátil kladivem do počítače" To se mně zdá normální v dnešní
době
Náhodný generátor vět je o tom, aby generoval náhodné, tím i nesmyslné věty..
Ahoj, zde přidávám svůj výtvor:
http://www.uschovna.cz/…C5G3P493-FHY
Jednotlivé levely se bohužel mohou opakovat, ale co - kyrandia 1 taky měla
více lesů jako levely
Tyvole nesnáším edit!!!
5 minut mu tu píšu komentář ke kódu, protože mám dobrou náladu, aby se zlepšil a pak to odešlu a voalá je to fuč. DAMN!
No abys ten kód zlepšil:
Stačí ti jedna instance třídy Random. Ty výrazy hoď do pole a generuj to
náhodné číslo pomocí velikosti toho pole (indexuje se od 0 do Length -1)
-> zbavíš se tak těch nesmyslných if-else if-else if... a bude to na pár
řádků
Ještě taková rada ke konvencím. Ty proměnné jako DobaRandom,
OneItemsRandom by měly začínat malým písmenem a pak každé nové slovo
velkým.
Zkus zkratku CTRL+E a pak D - narážím nato, že vidím že ten text tabuješ
a hned mi to bije do očí, protože to je jinak odsazené než jsem
zvyklý.
Špagety mám raději na talíři. Co takhle ten program rozčlenit do tříd? Jedna třída na dobu, jedna na nepřítele, jedna na item,...
Ahoj, zde je verze 1.1:
http://www108.uschovna.cz/…RN2TAZA6-T3W
Také se hlásím
http://projekty.danvitek.cz/…tor-pribehu/ - Možná to
ještě trochu doupravím
Tohle se ti povedlo:
Předměty Neznámý předmět (říkají mu tam jídlo)
takze jsem udelal verzi 1.2 poupraje par detailu p4koo, ja s polema jeste
bohuzel neumim, a Kit a třídy taky ne, naposledy jsem četl cykly -
zakladní konstrukce, už to asi během jednoho dne a pár hodin nestihnu, ale
zkusím se to naučit dál
<a href="http://uloz.to/xcEm426z/algoritmy-zip">http://uloz.to/xcEm426z/algoritmy-zip</a>
Cože? Neumím s polem a třídami? Příště si rozmyslím, než ti něco poradím.
Trošku jsem nezaznamenal nějaký improve codu. Pro příklad to přepiš alespoň takhle:
Random rand = new Random();
string[] foo = { "foo1", "foo2", "foo3", "foo4", "foo5", };
string selectedFoo = foo[rand.Next(foo.Length)];
Takhle pak budeš mít jen jednotlivé názvy v tom poli a vybereš si jeden prvek z pole -> každý ten select bude mít pár řádků. Nezapomeň nato, že instance třídy Random ti stačí jednou a nemusíš ji vytvářet pro každé generování zvlášť !
To uz jsem mu psal. Ale on nechtěl. Ještě to pry neumí, tak to tam nebude dávat.
Byl jsem příjemně překvapen, že mi to jelo hned napoprvé. To se mi moc často nestává. Trošku jsem mu to vylepšil, asi takto:
class MainClass {
static Random rand = new Random();
static string Vyber(string[] polozky) {
return polozky[rand.Next(1, polozky.Length)];
}
public static void Main (string[] args) {
//druhy tajemstvi
string tajemstvi = Vyber(new string[] {"strašné", "zlé", "..."});
//co mohl poslouchat
string legenda = Vyber(new string[] {"legendy", "příběhy", "..."});
//...
... a teď si mě můžete dobírat kvůli statice
p4koo diky moc za radu, poupravil jsem jen nejake veci, protoze dnes nemam
moc cas, ale zkusim jestli to stihnu jeste dodelat
verze 2.0
<a
href="http://uloz.to/xauMqucE/algoritmy-zip">http://uloz.to/xauMqucE/algoritmy-zip</a>
brisingre, ja nevedel ze je to tak jednoduche, kod se mi ukratil uz jen ted asi o 100 radku.
Lepší je List, ale pole stringů se snáze inicializuje. Řešením je převádět tyto struktury dle potřeby.
List lze v C# založit i z pole, takže je to na 1 řádek.
Děkuji, já jsem taky použil list, ale raději se zeptám odborníků
Koukám, že sis oblíbil názvy "foo", "bar", ... Četl jsem jeden manuál, ve kterém se to těmito názvy jen hemžilo a bylo to dost nepřehledné. Chybí jim totiž sémantika, která je pro pochopení účelu důležitá.
Zobrazeno 50 zpráv z 87.