Documentation ¶
Overview ¶
Package client : fournit une interface simple et efficace pour communiquer avec le serveur du hackathon. Pas besoin de vous embêter avec le réseau ce package s'en charge pour vous.
Le package va automatiquement gérer le réseau et les conditions gagnantes. La structure conseillée est la suivante:
func main() { c := client.NewClient() err := c.Connect("127.0.0.1:1337", "MonEquipe") if err != nil { // Traiter l'erreur } for c.Status() == ONGOING { err = c.NextTurn() if err != nil { // Traiter l'erreur } if c.Status() != ONGOING { break } // Prendre des descisions... } }
Author: Ares
Index ¶
- Constants
- type Cell
- type Client
- func (c *Client) AddUnit(cell *Cell) error
- func (c *Client) AddUnits(cell *Cell, count int) error
- func (c *Client) AddUnitsList(cells []*Cell) error
- func (c *Client) Attack(fromX, fromY, toX, toY int) error
- func (c *Client) Connect(url string, teamName string) error
- func (c *Client) EndAddingUnits() error
- func (c *Client) EndAttacks() (int, error)
- func (c *Client) Get(x, y int) *Cell
- func (c *Client) GetField() *Field
- func (c *Client) GetMap() *Field
- func (c *Client) MyCells() []*Cell
- func (c *Client) NextTurn() error
- func (c *Client) RemainingUnits() int
- func (c *Client) Status() int
- type Field
Constants ¶
const ( TOP = iota RIGHT BOTTOM LEFT )
Directions
const ( ONGOING = iota VICTORY DEFEAT CONNECTION_LOST )
Statuts
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cell ¶
type Cell struct { Owner int // identifiant numérique du propriétaire Power int // Nombre d'unités disponibles X int // Position X Y int // Position Y }
Cell décrit une cellule du champ de bataille
type Client ¶
Structure principale pour la gestion du client
func NewClient ¶
func NewClient() *Client
NewClient : Permet d'initialiser une instance d'un client. C'est la première chose à faire avant de pouvoir communiquer avec le serveur.
func (*Client) AddUnit ¶
AddUnit ajoute une unité sur la cellule passée en paramètre.
Si la fonction renvoie une erreur cela signifie que vous avez dépassé le nombre maximum d'unités.
Le champ de bataille sera mis à jour uniquement après l'appel de la méthode EndAddingUnits.
func (*Client) AddUnits ¶
AddUnits ajoute count unités sur la cellule passée en paramètre.
Si la fonction renvoie une erreur cela signifie que vous avez dépassé le nombre maximum d'unités.
Le champ de bataille sera mis à jour uniquement après l'appel de la méthode EndAddingUnits.
func (*Client) AddUnitsList ¶
AddUnitsList ajoute une unité chacune des cellules de la liste passée en paramètre.
Si la fonction renvoie une erreur cela signifie que vous avez dépassé le nombre maximum d'unités.
Le champ de bataille sera mis à jour uniquement après l'appel de la méthode EndAddingUnits.
func (*Client) Attack ¶
Attack permet de lancer une attaque. fromX et fromY sont les coordonnées de la case qui lance l'attaque et toX et toY sont les coordonnées de la case ciblée par l'attaque.
Attention: Si les 4 valeurs sont égales à 255 cela sera interprété comme la fin des attaques. Si c'est ce que vous voulez faire utilisez plutot la méthode EndAttacks
Si cette méthode renvoie une erreur c'est qu'il y a eu une erreur réseau.
func (*Client) Connect ¶
Connect Se connecte au serveur de jeu. Il envoie le nom de l'équipe et récupère son identifiant numérique.
L'url doit être de la forme IP:PORT.
Exemple :
c := NewClient() c.Connect("127.0.0.1:1337", "MonEquipe")
Une fois appelée l'id et le nom de l'équipe sont disponibles dans les champs ID et Name de Client.
c.ID // ID De l'équipe c.Name // Nom de l'équipe
func (*Client) EndAddingUnits ¶
EndAddingUnits termine la phase de placement des unités. Cette fonction va envoyer vos choix au serveur et mettre à jour la map.
Si cette fonction renvoie une erreur c'est qu'il y a eu une erreur réseau
func (*Client) EndAttacks ¶
EndAttacks permet de prévenir le serveur que l'on a fini toutes nos attaques. Cette fonction va également attendre le début de la phase de placement et initialiser les champs nécessaires à la phase de placement.
func (*Client) NextTurn ¶
NextTurn : attends le tour suivant.
Cette fonction va attendre le tour suivant, met à jour la map et calcul si l'on a gagné ou perdu. Il est conseillé de faire un test de status après l'appel à cette fonction.
Si cette fonction renvoit une erreur, c'est qu'il y a eu un problème lors des appels réseau. Il y a de grande chance que l'on ne soit pas en état de continuer.
func (*Client) RemainingUnits ¶
RemainingUnits renvoie le nombre d'unités que vous pouvez encore placer pendant ce tour.
type Field ¶
Field décrit le champ de bataille
func (*Field) Get ¶
Get permet de récupérer la cellule aux coordonnées x,y. Si les coordonnées sont invalides, alors la fonction renverra nil.