π
<-
Chat plein-écran
[^]

Pool Nspire

Pour TI-Nspire OS 3.0 ou ultérieur.

Pool Nspire

Message non lude Loulou 54 » 03 Aoû 2014, 02:28

Salut à tous !

Peut-être connaissez-vous déjà mon jeu de billard pour TI Nspire, Pool Nspire !

La version sur TI-Planet est une assez ancienne version, j'ai beaucoup avancé entre temps.. ;)
J'avais déjà implémenté il y a deux ans (j'ai dû arrêter à cause de la rentrée en MP) la physique du jeu, une vue 3D immersive, puis les règles ainsi qu'un début d'intelligence artificielle plutôt satisfaisant. Elle était capable de jouer selon les règles, et de faire des combos de n boules !

Après la grosse mise-à-jour d'ABA Logique, il était temps que je continue Pool Nspire... (en partie sous la pression de Nikitouzz :P) Mais la flemme a fait que j'ai pas mal traîné..

Or, il se trouve que j'ai suivi un cours additionnel à mon école à propos d'algorithmes rapides (c'était des astuces et de la théorie pour réduire la complexité d'opérateurs linéaires, typiquement, l'algo de FFT, ou du calcul d'interaction entre des particules ou des planètes) et on devait rendre un petit rapport sur un sujet en relation avec le cours - sur un article par exemple - pour valider le module.
Et là, j'ai eu une idée de génie : dans mon jeu de billard, l'algo de détection de collision entre les boules est de complexité quadratique, et il y avait moyen de le rendre bien plus performant !
Alors j'ai fait d'une pierre deux coups ! :D Je me suis remis à Pool Nspire en commençant par implémenter ce fameux algo. Puis j'ai fait mon rapport là-dessus. D'ailleurs, je vous le joint si vous voulez, c'est plutôt intéressant. :)

=>
Fast collision detection in a billiard game.pdf
Rapport sur l'optimisation de l'algorithme de détection de collision de Pool Nspire.
(642.56 Kio) Téléchargé 90 fois
(oui, le cours était en anglais, donné par un prof italien, un sacré bordel... :') )
Le prof a beaucoup apprécié mon rapport ! ^^

Et ensuite, puisque j'étais lancé, j'ai continué mon jeu ! En particulier, quelques améliorations sur la physique du jeu, et SURTOUT, j'ai continué l'IA !
Je n'ai pas encore totalement fini, mais elle commence à devenir assez monstrueuse. :D Je vous ai pris une capture d'un match IA vs IA et je trouve ça vraiment cool à regarder. 8-)

Billard IA.gif
Une partie IA vs IA assez impressionnante de pool Nspire !
Billard IA.gif (887.91 Kio) Vu 2242 fois


Comme vous avez pu le voir, elle est maintenant capable de faire des bandes et des combos, et de combiner le tout ! :bj:

Voilà, j'espère vous avoir donné l'eau à la bouche, Pool Nspire ne devrait pas trop tarder à sortir. ;)

A bientôt !
Mes programmes => ici !
Avatar de l’utilisateur
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.6%
 
Messages: 1985
Images: 8
Inscription: 02 Aoû 2009, 00:00
Localisation: 54, près de Metz
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingé Logiciel chez Amazon

Re: Pool Nspire

Message non lude Lionel Debroux » 03 Aoû 2014, 07:27

Tiens, un revenant :)

Très bien ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Pool Nspire

Message non lude QuanticPotato » 03 Aoû 2014, 09:08

Aucune chance de gagner si c'est l'IA qui commence :#tsss#:
Je sais que tu t'appelle Anonymous !!
Image
Avatar de l’utilisateur
QuanticPotatoPremium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 46.5%
 
Messages: 100
Inscription: 26 Juil 2014, 20:31
Localisation: Rennes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP

Re: Pool Nspire

Message non lude Loulou 54 » 03 Aoû 2014, 21:23

Oui alors évidemment je ferai différents niveaux de difficulté. Mais je pense que la rendre moins forte ne sera pas un problème en rajoutant un peu d'aléatoire pour simuler de la maladresse.. ;)
Mes programmes => ici !
Avatar de l’utilisateur
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.6%
 
Messages: 1985
Images: 8
Inscription: 02 Aoû 2009, 00:00
Localisation: 54, près de Metz
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingé Logiciel chez Amazon

Re: Pool Nspire

Message non lude Adriweb » 03 Aoû 2014, 21:48

Très intéressant ce PDF, je l'ai parcouru rapidement mais je vais le lire plus en détail :)

re-bienvenue, sinon :P
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Pool Nspire

Message non lude Loulou 54 » 03 Aoû 2014, 23:21

Adriweb a écrit:Très intéressant ce PDF, je l'ai parcouru rapidement mais je vais le lire plus en détail :)

re-bienvenue, sinon :P


D'acc !
Oui j'étais moins actif ces derniers temps mais je continuais à lire les news de temps en temps. ;) Merci !
Mes programmes => ici !
Avatar de l’utilisateur
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.6%
 
Messages: 1985
Images: 8
Inscription: 02 Aoû 2009, 00:00
Localisation: 54, près de Metz
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingé Logiciel chez Amazon

Re: Pool Nspire

Message non lude AlexRider38 » 04 Aoû 2014, 12:38

Vraiment sympas ton PDF ;) Clair et précis.
Sinon, bon retour parmi nous :D
Donald Knuth a écrit:
Beware of bugs in the above code; I have only proved it correct, not tried it.
Avatar de l’utilisateur
AlexRider38Généreux
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 68.5%
 
Messages: 650
Images: 0
Inscription: 03 Nov 2010, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Pool Nspire

Message non lude mdr1 » 16 Aoû 2014, 20:24

Super ! Le jeu gagne tout de suite en intérêt. J'ai deux suggestions. La première concerne le fait qu'en réalité, une boule ne met pas tant de temps à ralentir à la fin ; il faudrait revoir ton modèle de frottement. C'est surtout énervant à cause du temps d'attente pour chaque tour. La deuxième te propose d'ajouter le fait qu'une boule est en rotation sur elle-même et qu'elle peut donc rouler avec ou sans glissement. Il faudrait dans ce cas permettre de tirer plus en-dessous ou au-dessus de la boule.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: Pool Nspire

Message non lude Loulou 54 » 20 Aoû 2014, 18:27

Oui les effets de rotation des boules ne sont pas pris en compte et je ne compte pas les ajouter pour plusieurs raisons :
- On arrive aux limites de la TI : le jeu n'est pas très rapide malgré les améliorations
- Je ne sais pas trop comment modéliser ça.. (même si j'ai quelques idées ;) )
- Le comportement des boules contre les bandes notamment sera changé, et ça demandera beaucoup de travail pour adapter l'IA à ces comportements (même si la boule est frappée sans effet).

Pour ce qui est du frottement, je ne me suis pas trop posé de questions, j'ai modélisé ça comme ça :
à chaque frame, je fais v=v*c_f avec c_f le coefficient de frottement tel que 0 < c_f < 1.

En fait, cela correspond à la modélisation discrète (i.e. séquentielle) de l'effet d'une force de frottement fluide sur les boules. Tiens, je vais essayer de te le démontrer proprement :

Avant tout, sache qu'il est maintenant possible de passer le tour en appuyant sur :nsen: ! ça devrait régler tes problèmes d'impatience. ;) (c'était pareil pour moi hein :P )

Bon, on s'intéresse au système suivant : {boule}
A l'état initial, la boule vient d'être frappée et a une vitesse v0.
Bilan des forces :
- Le poids
- La réaction du support qui compense le poids
- La force de frottement, supposée de type "frottement fluide" qui s'exprime ainsi : F=-k*v avec k un coefficient dépendant de la nature du fluide, de l'état de surface et de la géométrie de la boule.

On a un problème unidimensionnel. On travaillera donc sur la droite de déplacement de la boule et on utilisera des scalaires.
Sur la trajectoire de la boule, on a donc, d'après la loi de Newton :
m*a(t)=-k*v(t)
soit : dv/dt=-k/m*v
donc : v(t)=v0*exp(-k/m*t)

Or mon modèle séquentiel correspond à cette suite :
v(n+1) = v(n)*c_f avec 0<c_f<1
soit : v(n)=v0*c_f^n (suite géométrique)

Les frames correspondant à des instants de période T, la première loi, avec t=n*T, donne :
v(n*T) = v0*exp(-k/m*n*T)
= v0*(exp(-k*T/m))^n
= v0*c_f^n avec 0 < c_f=exp(-k*T/m) < 1

D'où le fait que mon modèle correspond à un modèle de frottement fluide !

Bref, c'est joli et ça paraissait suffisamment réaliste donc j'ai gardé ça.

Maintenant qu'on en parle, il n'est pas impossible que cette modélisation ne soit pas adaptée à la modélisation d'une boule qui roule avec du frottement... Je vais chercher un peu, tiens. :)
Mes programmes => ici !
Avatar de l’utilisateur
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.6%
 
Messages: 1985
Images: 8
Inscription: 02 Aoû 2009, 00:00
Localisation: 54, près de Metz
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingé Logiciel chez Amazon

Re: Pool Nspire

Message non lude Loulou 54 » 20 Aoû 2014, 19:13

Alors j'ai fait quelques recherches et je suis tombé sur un TIPE intéressant :
https://sites.google.com/site/tipebilla ... rottements

Vers la fin, après confrontation à l'expérience il conclut cela à propos du roulement sans frottement :

La perte d'énergie de la boule peut apparemment se modéliser par une force dont l'expression serait de la forme
F = -f*v pour v>0,2m/s
Et sinon par une force de la forme
F = -f'*signe(v)
avec f ≈ 0.027 kg/s
et f' ≈ 0.0048 N

Ce qui conforte mon modèle lorsque la boule roule vite mais qui effectivement présente une inexactitude lorsque la vitesse est trop faible. A faible vitesse, on aurait une force constante, donc décroissement linéaire de la vitesse. :)

Il serait peut-être intéressant d'apporter cette modification alors.. ;)
Mes programmes => ici !
Avatar de l’utilisateur
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.6%
 
Messages: 1985
Images: 8
Inscription: 02 Aoû 2009, 00:00
Localisation: 54, près de Metz
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingé Logiciel chez Amazon


Retourner vers Nspire-Lua

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1343 utilisateurs:
>1294 invités
>44 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)