Diskuse:Programování pro hračičky/Andělé/2025
Přidat témaZaložení vlastního objektu
[editovat]Dvadomír
[editovat]//bude to kouzelná flétna, na kterou se bude dát hrát a bude mít efekt na ostatní, také se jí bude dát mlátit lidi
inherit "/i/weapon/zblizka";
#include <sklon.h>
void create()
{
"*"::create();
set_name("píšťala");
set_gender(ROD_F);
set_vzor(VZOR_ZENA);
set_adjektiv("krysařův");
set_long("Před svýma očima vidíš dlouhou píšťalu. Je oprýskaná a její zašlé dřevo naznačuje, že byla vyrobena již kdysi dávno. Ačkoliv vypadá jako pouhý kus dřeva, cítíš z ní cosi tajemného.");
}
K tomu už jsem poznamenával praktickou drobnost, učte se používat kratší řádky, ideálně na 80 znaků, protože pak to jde dobře číst i přímo jako anděl ve hře. Jinak by to chtělo přidat nějaké identifikátory (set_id()) a alternativní adjektiva (set_plus_adjektiv()), a když už je to zbraň, tak nastavit i parametry zbraně (k tomu doporučuji přečíst v Podprahové encyklopedii kapitolu o zbraních v oddílu Jak to funguje). A co se týče obsahu popisu, cosi tajemného zní jako hrozné klišé, zkuste to případně říci jinými slovy a konkrétněji, třeba: je z ní cítit síla, která dokáže rozpohybovat i ty nejlínější přihlížející.
Pro další programování bude potřeba rozmyslet a přesně popsat, jaké efekty na ostatní chcete flétně dát a jak přesně budou fungovat. --Mmh (diskuse) 15. 12. 2025, 12:12 (UTC)
Dvattka
[editovat]Protože jste to trochu rozházel tím předchozím vkládáním, ponechávám jen Vaši poslední verzi a níže připojuji komentáře jen k ní. Programový kód také cituji správněji pomocí <syntaxhighlight> a pro přehlednost přidávám odsazení. --Mmh (diskuse) 5. 5. 2026, 17:36 (UTC)
//budou to "Hermovy boty" pokud si je oblečeme budeme moci putovat mnohem rychleji
inherit "/i/clothes/clothes";
void create()
{
::create();
set_typ("bota");
set_plural(CISLO_MN);
set_name("bota");
set_gender(ROD_F);
set_vzor(VZOR_ZENA);
set_adjektiv("hermův");
set_id(({"bota","sandál","kaliga"}),({VZOR_ZENA,VZOR_STROJ,VZOR_ZENA}));
set_long("Před sebou vidíš staře vypadající kožené boty."
"Vlastně spíše připomínají sandále. Zvláštní je,"
"že z pat jim vyrůstají malá křidýlka, která se lehce chvějí.")
add_v_item(([
"name":"křidýlko",
"plural":CISLO_MN,
"gender":ROD_N,
"vzor":VZOR_MESTO,
"id":({"pata",}),
"vzor_id":({VZOR_ZENA}),
"plural_id":({CISLO_MN}),
"long":"Před očima máš malá, bílá, chvějící se křidýlka z jemného peří,"
"která jako by ti šeptala: obuj si nás. Obuj si kaligy a mi ti splníme i ta"
"nejvzdálenější přání. Neboj se, obuj si nás a budeš jako syn největšího"
"boha Dia a nymfy Mái. Nečekj! Obuj si kaligy!"
"feel":"Křidýlka jsou z tak jemného peří, že máš pocit, jako bys hmatal"
"zkapalněný vítr."]));
}
/*když si boty obujeme vypíše se nám návod jak boty používat.
1. normálně fungují jako boty, ale když napíšeme rozkaz "zaječí" (či tak podobně),
tak poté když napíšeme směr (např. sever), tak půjdeme tím směrem dokud to jde.
když ale napíšeme "stop" tato funkce bot se vypne.
2. Když napíšeme souřadnice místa či nějaký přesný objekt, hráče či popis místa
a dodáme "tam" (např. Joseftam) tak nás boty teleportují na zadané místo.
Z nějakého důvodu se prahům nelíbí CISLO_MN ze sedmého řádku, ROD_F z devátého řádku, VZOR_ZENA z desátého řádku a vzory ZENA, STROJ a ZENA z dvanáctého řádku. Mohl byste mi s tím prosím poradit? ~2026-23265-64 (diskuse) 27. 4. 2026, 17:29 (UTC)
- Zrovna tenhle problém je jednoduchý: zapomněl jste tam přidat řádku:
#include <sklon.h>
- Tím se načtou definice těch gramatických konstant.
- Jinak to už začíná vypadat funkčně (šly by doladit drobnosti, jako přesnější vzory, vhodnější idy apod., ale to můžeme řešit průběžně, pokud to už půjde načíst).
- Důležité je ale zaměřit se teď na ovládání bot, tedy přesně popsat, jak mají reagovat na jakou akci (tedy jakému vstupu má odpovídat jaký výstup).
- To ale řešme dále v následující kapitole o vstupně-výstupní charakteristice, ať se nám to neplete. --Mmh (diskuse) 5. 5. 2026, 17:45 (UTC)
Dvejk
[editovat]Ponejprv jen upozornění, že všechny programové soubory musí mít příponu .c a že soubory můžete pojmenovávat jen písmeny anglické abecedy, číslicemi, podtržítkem, spojovníkem a tečkou, přičemž v Prazích se držíme konvence, že programy běžných objektů jsou pojmenovány jen malými písmeny a podtržítkem (tedy třeba neco_velmi_uzasneho.c). Do jiných souborů nebudu ani koukat (ono to navíc třeba ve hře ani dost dobře nejde, systém na to není dělaný). --Mmh (diskuse) 15. 12. 2025, 12:12 (UTC)
A pokud ten soubor brzy nepřejmenujete, smažu ho, aby tam nestrašil (ze hry se s ním v této podobě nedá ani zacházet). --Mmh (diskuse) 21. 1. 2026, 11:05 (UTC)
Karlos
[editovat]Zatím nic ke komentování. --Mmh (diskuse) 15. 12. 2025, 12:12 (UTC)
Popoborec
[editovat]Zatím nic ke komentování. --Mmh (diskuse) 15. 12. 2025, 12:12 (UTC)
Vstupně-výstupní charakteristika
[editovat]Dvattka
[editovat]/*když si boty obujeme vypíše se nám návod jak boty používat.
1. normálně fungují jako boty, ale když napíšeme rozkaz "zaječí" (či tak podobně),
tak poté když napíšeme směr (např. sever), tak půjdeme tím směrem dokud to jde.
když ale napíšeme "stop" tato funkce bot se vypne.
2. Když napíšeme souřadnice místa či nějaký přesný objekt, hráče či popis místa
a dodáme "tam" (např. Joseftam) tak nás boty teleportují na zadané místo.
/*
- Vypsat při obutí bot návod na použití je dobrý nápad. Budou k tomu ale potřeba řídicí funkce, což je už trochu větší alchymie. Podívejte se na funkci
notify_wear_me()a hlaste se, kdybyste nevěděl, jak dál. - Povely je dobré definovat tak, aby je šlo používat v celých větách, a co nejuniverzálněji. Navíc se s nimi pracuje typicky po slovech (podle prvního slova se rozlišuje, které funkci se povel předá ke zpracování, atd.). Nabízí se tu zavést povel
zaběhni, podle jehož druhého slova se pak bude rozlišovat:zaběhni za Josefem,zaběhni do Jeruzaléma; běh na světovou stranu má trochu jiný charakter, tedy by to mohlo být třebavyběhni na sever. - Bude samozřejmě potřeba k tomu nějak vyhledat objekt nebo místo, kam hráč chce. To nepůjde úplně univerzálně, ale programově se dá pro bytosti využít třeba seznam pojmenovaných bytostí (v něm najdeme Josefa) nebo seznam bytostí, které právě něco konají (v něm najdeme i bezjmenné skřety, divoká zvířata apod., ale třeba Josef z něho může tu a tam zmizet, když se část hry, v níž se vyskytuje, nějakou dobu nepoužívala, a tak se uvolnila z paměti), a pro místa seznam míst pro teleportaci andělů. Další možnost je, že by boty sbíraly zkušenosti: hráč by jim ukazoval různá místa, bytosti a předměty, boty by si všechno ukázané pamatovaly, a pak by tam dokázaly hráče donést.
- A formální drobnost: tenhle dlouhý komentář se uzavírá
*/(vy tam máte znovu/*, jako byste otevíral nový komentář). --Mmh (diskuse) 21. 1. 2026, 10:53 (UTC)
Sem doplním nově, co je tedy potřeba udělat poté, co jsou boty vyrobeny jako hrubě otesaný objekt:
- Například definovat příkaz
putuj, který by se používal se jménem směru, např.putuj na sever, a který by zajišťoval tu první funkci. - Rozmyslet, jak by přesně fungovala ta druhá funkce, tedy jak by se botám zadávala místa a objekty: to jsou dva úkoly, nejprve se musí pro boty nějak definovat objekt, a pak se musí ten objekt použít v nějakém příkazu: například
ukaž botám Josefa(na což by hráč dostal hlášku, že jeho boty si zapamatovaly Josefa, anebo upozornění, že nějaký Josef už je v jejich paměti, a pak by šlo zadávat třebadoleť k Josefovi. --Mmh (diskuse) 5. 5. 2026, 17:48 (UTC)