Jump to content

ostatní Soutěž o nejlepšího pawnera - pawno.cz #1


Mort

Recommended Posts

Zdravím všechny,
rozhodl jsem se založit novou soutěž - o nejlepšího pawnera.
Z názvu vyplývá, že se bude soutěžit v programování v programovacím jazyku pawn pro hru GTA San Andreas.
Jak bude soutěž vypadat? : každé dva týdny zadám úkol a uživatelé pawno.cz se budou moci zapojit. Kterýkoliv člen může na úkolu pracovat. Vypracované řešení mi do stanoveného data pošlou do soukromé zprávy nebo do konkrétního tématu. Já váš script otestuji a po termínu odevzdání zveřejním vysledky a vítěze. Každému soutěžujícímu ohodnotím práci. Jeho práce bude zveřejněna a volně dostupná pro všechny uživatele pawno.cz
Co získám, když vyhraji? : ceny ještě nejsou přesně stanoveny, ale při výhře se zde na fóru dostanete do speciální skupiny se speciální barvou a dostanete rank (u příspěvku nad avatarem) "Pawner X. úrovně", kde X znamená počet vyhraných soutěží. 
Kdo hodnotí práce? : momentálně soutěže budu hodnotit pouze já, ale pokud by se někdo chtěl přidat, tak mi může napsat. To samozřejmě znamená, že už musíte mít nějaké zkušenosti s programováním. Porotci se nebudou moci účastnit soutěží.

Jak se hodnotí práce? : hodnotit práce budu podle rychlosti (40% max.), funkčnosti (40% max.) a přehlednosti kódu (20% max.)
Můžu používat cizí scripty? : ano, ale vždy u daného scriptu musíte uvést původního autora, pokud autor není známý, stačí napsat, že script není váš. Ale pokud vaše práce bude celá pouze z cizích scriptů, tak nebude hodnocena.
A co náročnost soutěže? : náročnost se může lišit, někdy může být jednoduchá, někdy bude těžší.
 
Tohle by zatím stačilo, teď již k zadání soutěže:


Soutěž #1 - přehledný zápis do souborů "Pawno - XML"

Takže z názvu první soutěže nám vyplývá, že budeme pracovat se soubory.

Vytvoříme si vlastní formát zapisování "PAWNO - XML".

Možná jste již někde slyšeli o XML. Je to značkovací jazyk. Znamená to eXtensible Markup Language. 

XML je podporován spousty aplikací a jazyků. Ale bohužel, pawno ho nepodporuje, proto data do souboru ukládáme nějakým takovým stylem:

heslo=pawno
money=5000
nahranych_hodin=5
nahranych_minut=15
pozice_hraceX=100
pozice_hraceY=200
pozice_hraceZ=300

Klasika, ne? :)

A my si zkusíme naprogramovat něco takového:

<ucet>
    <heslo="pawno">
</ucet>
<statistiky>
    <money="5000">
    <nahranych_hodin="5">
    <nahranych_minut="15">
</statistiky>
<spawn>
    <pozice_X="100">
    <pozice_Y="200">
    <pozice_Z="300">
</spawn>

Požadavky:

  • Ukládání dat - string, integer, float
  • Načítání dat - string, integer, float
  • Elementy - začátek a konec (př.  <ucet> & </ucet>)
  • Tabování v elementech (defaultně 4 mezery)
  • Pokud se data špatně načtou, nespadne celý server ale vypíše nějakou pěknou hlášku do konzole

Navíc (plusové body)

  • Speciální datový typ - date (načítání a ukládání)
    • Ukládalo by se jako Den/Měsíc/Rok ("8/2/2015")
  • Vnořování elementů + dodatečné tabování
<statistiky>
    <zavody>
        <vyhral_penez_derby="15000">
    </zavody>
    <money="5000">
</statistiky>

Jak se s tím poperete je už na vás, nezapomeňte uvést způsob, jak zapisovat data, poznámky ke kódu (stačí nad fcí napsat stručně co to dělá, co to vrací)

 

Deadline: 21.2.2015 12:00

 

Na nejasnosti se můžete ptát tady v tématu.

 

Hodně štěstí, 

Mort. :)

Link to comment
Share on other sites

Super nápad, určite sa do toho pustí veľa ľudí, viac sa mi páči, že to pre začiatočníkov/nováčikov nie je nič jednoduché, takže sa s tým potrápia, určite sa do toho pustím aj ja, GL pawneri.  :p

Link to comment
Share on other sites

rozhodl jsem se založit novou soutěž - o nejlepšího pawnera.

 

trošku ťa opravím, táto súťaž tu už raz bola  :think: dokonca aj taká istá výhra, ale vydržala iba chvíľu :(

Link to comment
Share on other sites

  • Globální moderátor

aj keď som milousa zle pochopil stále dúfajme že táto súťaž vydrží až do konca :d

Link to comment
Share on other sites

Nechci nic říkat, ale nevypadá XML nějak takhle spíš ?

<statistiky>
    <zavody>
        <vyhral_penez_derby>15000</vyhral_penez_derby>
    </zavody>
    <money>5000</money>
</statistiky>

hodnoty by se v XML měly vkládat mezi tagy, do těch úvozovek by měla přijít nějaká režijní data jako IDčka, popř styly ne ?

Link to comment
Share on other sites

Nechci nic říkat, ale nevypadá XML nějak takhle spíš ?

<statistiky>
    <zavody>
        <vyhral_penez_derby>15000</vyhral_penez_derby>
    </zavody>
    <money>5000</money>
</statistiky>
hodnoty by se v XML měly vkládat mezi tagy, do těch úvozovek by měla přijít nějaká režijní data jako IDčka, popř styly ne ?

 

Nemusi to tak bejt. Napriklad ja v praci pouzivam XML kazdej den a je dle vzoru co uvedl Mort

Link to comment
Share on other sites

  • Administrátor

Nechci nic říkat, ale nevypadá XML nějak takhle spíš ?

<statistiky>
    <zavody>
        <vyhral_penez_derby>15000</vyhral_penez_derby>
    </zavody>
    <money>5000</money>
</statistiky>

hodnoty by se v XML měly vkládat mezi tagy, do těch úvozovek by měla přijít nějaká režijní data jako IDčka, popř styly ne ?

Je víc druhů zápisu.. Nejspíš původní XML tak vypadalo ale dnes se spíše využívá zápis by mort

Link to comment
Share on other sites

Príde mi to ako mega pičovina niekto to vyhra a bude si tu mastiť ego že to vyhral a ludia sa tu budu posudzovať podla toho kto toho vyhral viac

 

Musíš vzít v potaz, že soutěže nebudou zase tak jednoduché a může se stát, že nevyhraje nikdo. Pokud se ale stane to co jsi ty napsal, můžu dotyčnému odebrat titul a skupinu.

 

 

Nechci nic říkat, ale nevypadá XML nějak takhle spíš ?

<statistiky>
    <zavody>
        <vyhral_penez_derby>15000</vyhral_penez_derby>
    </zavody>
    <money>5000</money>
</statistiky>

hodnoty by se v XML měly vkládat mezi tagy, do těch úvozovek by měla přijít nějaká režijní data jako IDčka, popř styly ne ?

 

Ano, máš pravdu, takhle vypadá třeba XHTML. Nejdříve jsem chtěl zadat to, co jsi zde napsal, ale ten druhý způsob mi přišel rozumnější. 

Pokud budete chtít, můžete data zapisovat jak říkáš ty nebo obojím způsobem, je to na vás.

 

 

Aby nedošlo k omylu (jako že už k němu došlo), tak to co jsem napsal bylo pouze pro příklad, nebylo to to, co máte přesně udělat. Jde o to udělat univerzální zapisování a čtení dat v takovémto formátu.

Uvedu příklad zápisu do souboru v našem formátu:

new File:soubor = fopen("xml.txt", io_write); // vytvorime soubor
new xml_zapis = XmlCreate(soubor); // dame vedet, ze vytvarime xml zapis
XmlStartElement(xml_zapis, "ucet"); // vytvorime nový element
XmWriteString(xml_zapis, "heslo", Hrac[playerid][Heslo]); // do toho novyho elementu zapiseme heslo
XmlEndElement(xml_zapis, "ucet"); // a uzavreme element
XmlClose(xml_zapis); // a dame vedet, ze jsme skoncili se zapisem
fclose(soubor);

A čtení:

new File:soubor = fopen("xml.txt", io_read);
new xml_cteni = XmlRead(soubor);
XmlReadString(xml_cteni, "ucet", "heslo", Hrac[playerid][Heslo]); // do Hrac[playerid][Heslo] se zapise z elementu "ucet" polozka "heslo"
XmlClose(xml_cteni);
fclose(soubor);
Link to comment
Share on other sites

@Mort, to "vnorovanie" elementov môže byť aj child v childe napr:

 

<parent>

    <child>

        <child>

        </child>

    </child>

<parent>

 

?

Link to comment
Share on other sites

aj keď som milousa zle pochopil stále dúfajme že táto súťaž vydrží až do konca :d

 

V roku (myslím že) 2012 sa konala tiež PAWN súťaž, akurát bolo viac porotcov zo skúsených pawnerov.

Link to comment
Share on other sites

@Mort, to "vnorovanie" elementov môže byť aj child v childe napr:

 

<parent>

    <child>

        <child>

        </child>

    </child>

<parent>

 

?

Stačí jednoduchá rekurze a může ti být úplně jedno kolik potomků tam máš ne ? :p

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...