Yop !
Je vous présente ici un petit projet rapide de billard dans une console linux
Origins
Quelle idée saugrenue me direz-vous, et en effet je ne dis pas le contraire. Je vous dois peut-être quelques explications :
Comme beaucoup d’écoles, en fin de première année on nous propose de faire un petit jeu en python; un grand classique. Mais les contraintes de mon écoles étaient pour le moins surprenantes, le jeu devait être :
- En python 2.7 (mais quelle école moderne)
- En console (linux-only)
- Sur le thème de la balle (oui oui, en console)
- En procédural (mais euh)
Codage
Bon j’aime bien les défis, alors je me suis lancé dans le codage d’un billard . Alors soit, ce n’est en soi pas plus compliqué qu’en graphique ; seul l’affichage diffère. On calcule la position des boules puis on affiche la caractère au bon endroit. Mais alors que je m’attendais à un résultat assez dégueulasse, il n’est pas si chaotique que ça. En effet, notre cerveau fait un formidable travail et on peut assez facilement suivre la trajectoire des boules.
Comme ça m’a semblé intéressant, je vous le présente ici !
Le jeu
C’est un billard qui suit les règles de bar que je connais, qui se rapprochent beaucoup du jeu de la 8. Si vous avez un doute sur l’arbitrage, un logigramme des règles se trouve dans le zip que vous trouverez ci-dessous.
Il y a trois mode de jeu; PvP, PvIA (avec des IA plus que douteuses ) et un mode bac à sable.
On trouve quelques options qui permettent d’avoir un rendu plus ou moins "beau" en fonction des capacités de votre console.
Notez aussi que c’est un jeu que j’ai codé vite fait, donc il n’est pas très optimisé
Détails
Il va vous falloir un ordi (surtout processeur) pas trop mauvais pour le faire tourner. En effet le rafraîchissement s’effectue à chaque nouvelle image ( Optimisation/20 ) comme un jeu graphique. Mais comme ce ne peut pas être la carte graphique qui s’en occupe, le pauvre processeur doit s’occuper de tout. Il risque donc d’y avoir quelques soucis éventuels de clignotements (même si vous réglez les FPS au minimum).
Téléchargement et Lancement
Vlà donc le zip. C’est exactement celui que j’ai rendu.
C’est un simple dossier python, il faut donc (sous linux du coup) aller dedans et faire un simple
1 | python main.py |
Qui devrait lancer le jeu.
EDIT: Je viens de me rendre compte d’un bug, n’essayez pas d’augmenter les FPS ça casse la physique des boules
Et sinon ?
Euh… rien. Le projet devrait pas aller beaucoup plus loin parce qu’il est rendu et que la note est tombée1, mais si le jeu peut vous amuser un petit quart d’heure je serais content . Je le mets ici comme ça, éventuellement pour avoir quelques avis sur le code ou autre (si l’envie vous vient). Mais je voulais surtout partager avec vous ce petit projet, sans plus !
Bref, amusez vous un peu avec, j’espère qu’il vous plaira
-
Si vraiment vous êtes curieux, 18.8. Mais ça inclut plein d’autres choses comme les cahiers charge/conception donc moi même je ne sais pas :p ↩