26-04-2012, 03:59 PM
(Modification du message : 27-04-2012, 11:48 AM par Sephi-Chan.)
Ce sujet est issu de la séparation de la discussion Mon apprentissage de Erlang.
Merci pour la réponse Niahoo.
J'ai utilisé Any après avoir lu The Eight Myths of Erlang Performance, je trouvais ça un peu plus parlant (et ça m'évitait d'expliquer _). J'ai également appris qu'en nommant la variable _Any, le compilateur n'avertit plus la non-utilisation de la variable.
Effectivement, je suis allé lire la documentation de
Merci pour l'exemple en tout cas. D'ailleurs, j'ai quelques questions pour toi sur la façon de faire un système de jeu.
Merci pour la réponse Niahoo.
(26-04-2012, 03:42 PM)niahoo a écrit :(26-04-2012, 02:05 PM)Sephi-Chan a écrit : Comme on peut le voir, quand j'envoie un message contenant l'atom endive, les messages introduce suivant ne sont pas traités. Si l'on n'avait pas créé de règle pour les messages d'une autre forme, le message endive n'aurait pas été traité, mais la réception des messages suivants n'aurait pas été interrompue pour autant (je ne suis pas encore capable d'en expliquer la raison).
Si tu n'avais pas utilisé un catch-all (je te suggère d'ailleurs d'utiliser _ au lieu de Any), le process serait resté bloqué sur receive, en attente d'autres messages, et aurait pu les traiter au fur et à mesure qu'ils arrivent, les messages non reconnus de type endive seraient simplement ignorés jusqu'au prochain appel de receive.
J'ai utilisé Any après avoir lu The Eight Myths of Erlang Performance, je trouvais ça un peu plus parlant (et ça m'évitait d'expliquer _). J'ai également appris qu'en nommant la variable _Any, le compilateur n'avertit plus la non-utilisation de la variable.
Effectivement, je suis allé lire la documentation de
receive
et on peut y lire que receive
ne foire jamais et que l'exécution est suspendue jusqu'à ce qu'un message corresponde (et qu'il passe le guard).Merci pour l'exemple en tout cas. D'ailleurs, j'ai quelques questions pour toi sur la façon de faire un système de jeu.
- Que fait-on généralement pour communiquer avec un serveur Web (qui sert juste de point d'accès) si on développe un serveur de jeu (qui s'occupe de l'état du jeu et des joueurs) ?
- Comment penses-tu le code métier (systèmes de quêtes, occupation des territoires, etc.) ?
- Comment utilises-tu (ou non) les processus. Imagine Risk en Erlang, est-ce que c'est raisonnable de créer un processus par joueur, un processus par partie, un processus par territoire, etc.