Capitalist Tetris : W4
Par asmanur, le dimanche 29 mars 2009, à 00:00 | Catégorie : Capitalist Tetris | Mots-clés : W4 | Source
Comme vous le savez, pour Capitalist Tetris , haveo et moi suivons un mode de développement à la semaine. Grosso modo pendant la semaine on réfléchit à ce qu’on va implémenter et comment on va le faire et le week-end on code.
Ça mérite donc un petit changelog.
Coté serveur
À la base je devais ajouter au protocole la possibilité de choisir une pièce pour un adversaire ainsi qu’envoyer aux clients leur score lorsqu’il y a modification (lignes ou choix de pièces). Mais bon, comme le serveur c’est un peu l’endroit où j’expérimente des trucs louches et que le code commençait à être un peu lourd à écrire, j’ai décidé d’implémenter une state monad dans le serveur (on va peut-être s’en servir dans le client du coup parce que ça serait ptait encore plus pratique :-°), et donc on dépend maintenant de pa_monad (mais c’est dans le repo).
Résultat : le code est un peu plus long mais largement plus maintenable et plus agréable à écrire.
Coté client
(c’est haveo qui parle là) Le client tel qu’il était durant la W3 était difficilement utilisable. Il fallait entrer ses commandes via stdin, les timers n’étaient pas gérés et une grande partie du protocole n’était pas gérée. La W4, en ce qui concerne le client, visait donc à résoudre ces problèmes là.
Coté protocole, le client met maintenant à jour le score des joueurs sur requête du serveur. Il est aussi capable de modifier les fields des autres joueurs lorsque le serveur lui signale qu’une pièce est tombée. Il peut aussi changer les pièces de ses adversaires.
Au niveau des commandes, l’interface clavier est opérationelle. Vous pouvez enfin bouger votre pièce, la faire tomber, comme dans tout Tetris.
En plus, vous avez de la chance, le timer qui fait descendre votre pièce a aussi été mis en service. L’interface stdin est maintenant obsolète mais devrait être conservée pour pouvoir faire du debug.
Enfin, j’ai fait quelques retouches graphiques, affichage de votre field et de celui de votre adversaire ou, un peu plus anecdotique, changement du background des fields pour le noir (après des tests très poussés, j’ai décidé que ça faisait moins mal aux yeux).
Pour les curieux, voici le changelog darcs .
Vers le futur et l’au-delà
Bon comme vous le voyez, plus le temps passe, plus le jeu devient jouable. Bon là c’est pas encore jouable mais bon on y travaille.
Au programme de W5 :
- des bugfixes, encore et toujours (peut-être même une buglist %) ;
- une amélioration du protocole, là c’est vraiment évident pour un client de tricher, y’a quasiment aucun contrôle du coté du serveur (et qu’on puisse savoir la prochaine pièce des gens pour comploter toujours plus) ;
- une amélioration de l’interface du client ? (genre du texte par exemple :-’)
- des vrais bindings clavier (ouais nan parce que hjkl ça pue, vraiment).