J'ai essentiellement programmé ce OCaml Pong pour me familiariser avec OCaml et avec certains concepts de la programmation fonctionnelle.
main utilise la récursion terminale pour ne pas faire déborder la pile.
balle et joueur sont des enregistrements composés de fonctions donnant accès à des popriétés privées contenus dans des fermetures.
tballe.b_applique_sur_direction et tjoueur.jr_passe_rect prennent une fonction en paramètre.
L'état du jeu est représenté à l'aide d'un type pouvant être de forme Splash | EnJeu | Pause | Quitter. À l'aide de filtres, les fonctions entree, engin et rendu agissent différemment dépendamment de l'état du jeu.
- Pointage.
- Effets visuels (sur contact entre la balle et un joueur, sur rebond au mur, traînée derrière la balle, etc.).
- Pouvoir changer de joueur en pleine partie.
- État "but marqué" marquant un temps d'arrêt après qu'un but soit marqué.