Síťový mariáš – uživatelská dokumentace

Úvod

Síťový mariáš se sestává ze dvou základních částí – serveru a klienta. Klientské části je věnována převážná část tohoto dokumentu. Obě části pro svou kompilaci a spuštění vyžadují OS unixového typu.

Instalace

Instalace serveru

Rozbalte soubor MariasServer-<číslo verze>.tar.gz do libovolného adresáře (např. /usr/src). Přejděte do adresáře se soubory (např. /usr/src/MariasServer<cislo verze>). Pomocí následujících příkazů program zkompilujete a nainstalujete.

# ./configure

# make

# make install

Pokud chcete program pouze přeložit, a neinstalovat, nespouštějte instalaci příkazem make install. Po úspěšném překladu příkazem make najdete v adresáři <cesta ke zdrojovým souborů>/src přeložený program mariasserver.

Instalace klienta

Vlastní instalace probíhá stejně jako v případě serveru. Navíc je ovšem potřeba mít v systému nainstalovány tyto knihovny:

Všechny knihovny by měly být nainstalovány včetně vývojových (*-devel) verzí.

Používání klienta

Spouštění a parametry

Klienta spustíte příkazem ./simplemarias v adresáři projektu (<cesta k projektu>/src), nebo, pokud jste po překladu provedli také instalaci, příkazem simplemarias.

Připojení k serveru

Pro zahájení hry se nejprve připojte k hernímu serveru. V hlavním menu vyberte Hra > Připojit. Objeví se dialog pro připojení k serveru. Vyplňte Vaše uživatelské jméno (tím budete identifikování při hře), a napravo od seznamu serverů klikněte na „Přidat“, a dialogu vlastností serveru vyplňte tyto údaje: jméno serveru (pouze pro vaši potřebu), adresa serveru a port (tyto údaje zjistíte od provozovatele serveru, ke kterému se chcete připojit). Po úspěšném připojení se objeví upozornění.




Obrázek I: Dialog pro připojení k serveru





Obrázek II: Dialog vlastností serveru


Vlastní hra

Hra probíhá pomocí textových příkazů, které klient přijímá od serveru, nebo je naopak serveru odesílá. Po připojení se server pošle příkaz serv connAccepted, pokud se připojení zdařilo a na serveru není připojeno dost klientů (<= 3), nebo serv connRefused, pokud je již připojeno příliš mnoho klientů. Další příkazy pro hru najdete v seznamu příkazů.

Seznam příkazů

Reprezentace karet v příkazech

Karty jsou reprezentovány jako dvojice barva:výška, oddělené mezerou. Barva je některá z následujících: cervene, kule, zaludy, zelene. Výška má některou z následujících hodnot: 7, 8, 9, 10, spodek, svrsek, kral, eso. Všechny identifikátory jsou psány malými písmeny.

Servisní příkazy – příkazy serv

Servisní příkazy slouží výměně informací o hráči a serveru, informací o spojení a podobně

Příkaz

Odesílatel

Popis

serv connAccepted

Server

Připojení bylo přijato

serv connRefused

Server

Připojení bylo odmítnuto – pro příliš mnoho hráčů

serv badCmd [popis]

Server

Hráč odeslat špatný nebo neznámý příkaz, nepovinným argumentem je popis chyby

serv newClient <jméno_hráče>

Server

Byl připojen nový hráč, parametrem je jeho jméno

Serv newClient <jméno_hráče>

Hráč

Hráč oznamuje serveru svoje jméno

serv discClient <jméno_hráče>

Server

Hráč <jméno_hráče> se odpojil

serv changeName

Server

Hráčovo jméno už je použito, a tak server žádá o změnu přezdívky

Serv changeName <jméno_hráče>

Hráč

Hráč odesílá serveru změněnou přezdívku v reakci na požadavek changeName od serveru



Informační příkazy – příkazy info

Informační příkazy slouží k zjišťování informací o hře, připojených hráčích, jejich celkovém skóre a podobně.



Příkaz

Odesílatel

Popis

info stych

Hráč

Hráč žádá server o seznam karet v aktuálním štychu – odpověď je buď seznam karet, nebo serv badCmd, pokud se nehraje

info stych <seznam_karet>

Server

Server posílá hráči seznam karet ve štychu

info skore

Hráč

Hráč žádá server o informace o skore jednotlivých hráčů

info skore hrac1:skore1 … hracN:skoreN

Server

Seznam skóre jednotlivých hráčů – seznam ve tvaru <přezdívka>:skóre oddělený mezerami

info trumf

Hráč

Hráč se ptá, jaká je barva trumfu

Info trumf <barva>

Server

Server posílá informaci o barvě trumfu

Info hraci

Hráč

Hráč se ptá, jací hráči jsou aktuálně připojeni

Info hraci hrac1 hrac2 hrac3

Server

Seznam aktuálně připojených hráčů

Info cards

Hráč

Hráč se ptá, jaké má karty v ruce

Info cards <barva1:vyska1> … <barvaN:vyskaN>

Server

Odpověď – seznam karet, které má hráč v ruce

info leader <jméno_předáka>

Server

Který z hráčů je předákem

Herní příkazy – příkazy game

Herní příkazy slouží k vlastní hře – například k odložení karty do štychu, výběru trumfů atd.



Příkaz

Odesílatel

Popis

game start

Server

Server čeká na hráčovo potvrzení, že může začít hra

game start

Hráč

Hráč potvrzuje, že je připraven ke hře

game leader

Server

Hráčovi je sděleno, že se stal předákem

game repeat <jméno_příkazu>

Server

Server žádá hráče, aby zopakoval naposledy požadovaný příkaz, například proto, že v hráčově příkazu nebylo něco v pořádku

game cards <seznam_karet>

Server

Server rozdal hráčovi karty

game trumf

Server

Server žádá od hráče volbu trumfu – hráč může odpovědět rovnou game barva spatna, pokud chce hrát betla nebo durcha

game trumf <karta_trumfu>

Hráč

Hráč posílá serveru informaci o zvoleném trumfu

game trumf <barva_trumfu>

Server

Server oznamuje ostatním hráčům, jak byly zvoleny trumfy

game talon

Server

Server žádá hráče, aby odhodil karty do talonu

game talon barva1:vyska1 barva2:vyska2

Hráč

Hráč odesílá karty, které hodil do talonu

game talon barva1:vyska1 barva2:vyska2

Server

Server předává hráčovi karty v talonu, pokud se hráč rozhodne hrát betla nebo durcha

game barva

Server

Předák se ptá, jaká je barva

game barva [ dobra | spatna ]

Hráč

Jaká je barva

game gameType

Server

Jakou hru chce hráč hrát

game gameType [ normal | sto | sedma | stosedma]

Hráč

Předák oznamuje, jakou hru chce hrát

game gameType [ normal | sto | sedma | stosedma]

Server

Server posílá ostatním informaci, pro jakou hru se předák rozhodl

game betlType

Server

Server se ptá předáka, jakou vyšší hru chce hrát (betla/durcha)

game betlType [ betl | durch ]

Hráč

Hráč se rozhodl pro betla/durcha

game vys

Server

Server se ptá hráče, zda si dá flek – hráč může odpovědět také game gameType sedma, pokud chce hrát sedmu proti

game vys [yes / hra | no | sedma | sedmaHra ]

Hráč

Hráč odpovídá, jestli si dá flek na hru/sedmu/oboje

game put

Server

Server se ptá hráče na kartu do štychu

game put barva:vyska

Hráč

Hráč odhazuje kartu do štychu – pokud karta neodpovídá pravidlům, server oznámí game badCard

game result [ lost | won ]

Server

Server oznamuje hráčům, zda předák prohrál (lost), či vyhrál (won)

game rotate

Server

Otázka od serveru, kolik karet chce hráč sejmout

game rotate <číslo>

Hráč

Hráč oznamuje, kolik karet sejmul

Informace o hře – příkazy ginf

Pomocí příkazů zprostředkovávajících informace o průběhu hry server informuje hráče o akcích jejich spoluhráčů, o změně fáze hry (začátek hry, nový štych...). Základní syntaxe je: ginf <jméno_hráče> <příkaz_který_hráč_provedl> [parametry]



Příkaz

Odesílatel

Popis

ginf server newGame

Server

Začíná nová hra

ginf <jméno_hráče> talon

Server

Hráč odhodil talon

ginf <jméno_hráče> trumf

Server

Hráč odhodil trumfy

ginf <jméno_hráče> barva [ dobra | spatna ]

Server

Hráč odpověděl barva dobrá/špatná

ginf <jméno_hráče> betlType [ betl | durch ]

Server

Jakou vyšší hru zvolil hráč

ginf <jméno_hráče> vys [ hra | sedma | sedmaHra | no ]

Server

Hráč si dal flek na hru/sedmu/obojí, nebo nedal flek

ginf <jméno_hráče> gameType [ normal | sedma | stoSedma ]

Server

Hráč zvolil typ hry

ginf server newTrick

Server

Server oznamuje hráčům, že

ginf <jméno_hráče> put barva:vyska

Server

Hráč odhodil kartu do štychu

ginf server endTrick

Server

Štych skončil

Ukončení hry

Pro ukončení hry použijte položku menu Hra > Odpojit. Pokud se odpojí některý z vašich spoluhráčů, budete odpojeni rovněž, předtím Vám ovšem bude zasláno serverem konečné skóre hry. Pro další hru (s novými spoluhráči) se musíte opět připojit.

Server

Server má tyto volby