|
Last update: 25-11-2023 |
left : float * float -> float * float -> float * float -> int
register_left := left;;
between : float * float -> float * float -> float * float -> bool
telle que (between a b c), où ac et
ab sont des vecteurs colinéaires, renvoie
true si c se situe sur le segment [a,b].intersect_segment : float * float -> float * float ->
float * float -> float * float -> bool
telle que (intersect_segment a b c d)
renvoie un booléen indiquant si les segments [a,b] et
[c,d] ont une intersection non vide. get_cube_inter_segments
.
Une fois la liste des segments récupérés (nous avons vu qu'il y en a 8 au
maximum), il suffit pour chaque petit déplacement d'effectuer les tests
d'intersection entre ces segments et le vaisseau spatial. C'est le rôle de
la fonction inter_cubes
.get_cube_inter_segments : float -> float -> ((float * float) * (float * float)) list
cubes : Types_serveur.cube liste ref
est déclarée, qui stocke la
liste de tous les obstacles du jeu.inter_cubes : float -> float -> ((float * float) * (float * float)) list -> bool
cree_vaisseau : Graphics.color -> bool
qui
essaye de rajouter dans le plateau de jeu un vaisseau ayant la couleur
passée en argument. S'il existe déjà un autre vaisseau ayant cette couleur,
la fonction ne crée pas le vaisseau et renvoie false, sinon le
vaisseau est rajouté à la liste des vaisseaux du plateau de jeu et la
fonction renvoie true. Dans ce cas, le vaisseau est placé aléatoirement
dans l'espace de jeu. Vous pourrez supposer que, lorsque cette fonction est
appelée, un mutex a été locké de manière à éviter d'obtenir des résultats
exotiques et improbables. On rappelle que la liste de tous les vaisseaux
actuellement dans le jeu est stockée dans la variable
vaisseaux : Types_serveur.vaisseau list ref
.detruit_vaisseau : Graphics.color -> unit
supprimant de la liste des vaisseaux (variable globale
vaisseaux : Types_serveur.vaisseau list ref
) celui dont la couleur
est passée en argument. Là encore, vous pourrez supposer que, lorsque cette
fonction est appelée, un mutex a été locké.