Működés, alapelvek

Működés, alapelvek

A játékos program könnyebb áttekinthetősége, megtervezhetősége érdekében a játékos és bróker_szerver közötti kommunikációt callback technikára építve egy C++ osztályban (Player) valósítottuk meg, melyből származtatással hozható létre a felhasználó saját osztálya. A Player osztályból létrehozott mintaprogram dokumentációja segít a működés pontos megértésében. A mintaprogram és a kommunikációt megvalósító könyvtár a ~szebi/BMX katalógusban található.

Javasolt munkamódszer a játékos kifejlesztéséhez

  • Célszerű egy külön katalógust létrehozni a játékhoz (pl. verseny). Ebbe kell bemásolni a ~szebi/BMX alkönyvtárból a main.cc és a Makefile állományokat. Ez automatikusan megtörténik, ha a kívánt katalógusba (verseny) belépve kiadjuk a következő parancsot:
    make -f ~szebi/BMX/Makefile init
  • Ezt követően a make parancs kiadásával lefordul a main.cc állományban levő minimál játékos. Ez már készen áll a futtatásra, persze nagyon buta.
  • A futtatás előtt azonban regisztrálni kell a játékra. Ezt a make register parancs kiadásával tehetjük meg (regisztrálni csak a legelső futtatás előtt kell egyszer).
  • A main.cc állomány egy nagyon egyszerű játékos kódját tartalmazza. Ezt kell kiegészíteni a megfelelő logikával működő játékos kódjával.
  • A játékos a Player alaposztályból származik, melynek a deklarációja a ~szebi/BMX/mainloop.h állományban van. Ezt nem szükséges lemásolni, mert a fordításkor a fordító megtalálja, de természetesen megnézhető elemezhető.
  • A Nyitás(), és Zárás() függvények segítségével szükség esetén fájlba írhatók a kereskedés (futam) végén az adatok (pl. árfolyam alakulása). Így a következő futamnál figyelembe lehet venni – ha kell – a megelőző trendeket, illetve mindenki saját maga összesítheti eredményeit. (Javaslom a perzisztenciáról tanultakat itt hasznosítani).

Játék menete, technikai lépések

  • A mintaprogram alapján létrehozott játékprogramot 14:00 és 23:00 között minden óra 00 perckor kell elindítani. (A napi rendszeres indításban és az időzítésben a UNIX cron szolgáltatása segít, melyhez magyarázatot is adunk.)
  • Az "éles" környezetben való indításhoz a BMX=1 indítási paraméterrel, vagy a BMX=1 környezeti változó beállításával kell a programot indítani.
  • A futamok mindig óra 10-kor kezdődnek, és reményeink szerint viszonylag rövid idő alatt (<10 perc, a játékosok és a hibás programok számától függ) befejeződik.
  • Az "éles" környezetben futtatott programok összesített eredményeit a futamot követő óra 20-kor tesszük közzé.

Tesztelés

  • A program minimális igényű teszteléséhez a kommunikációs könyvtár ad segítséget.
  • Amennyiben programot a BMX környezeti változó beállítása és paraméter nélkül indítjuk, akkor azonnal elindul egy buta kereskedési ciklus, mely 20-szor fut körbe, mindig azonos árral. Ez azonban nem adminisztrálja a vásárlásainkat sem.
  • A teszteléshez létrehoztunk teszt környezetet is. Amennyiben a programot a BMX=TEST argumemtummal (pl. main BMX=TEST), vagy a BMX=TEST környezeti változóval (bash-t használva BMX=TEST main) indítjuk, akkor egy olyan szerverhez kapcsolódik, amiben minden 15 percben van futtatás. A teszt környezet futási eredményeit nem rangsoroljuk, nem jelenítjük meg sehol. (Ne felejtse el, hogy ha a . (pont) nincs benne a keresési útban (PATH) (ural2-n ez alapbeállítás), akkor ./main -nal kell indítani!)
Utolsó frissítés: 2016-02-09 12.02