Étape 8: Constructions de jeu - jeu de logique - Intelligence artificielle (IA)
À ce stade, toute la logique jusqu'à présent peut être transformé en un jeu complet de deux joueurs. Toutefois, il serait bien permettre un mode solo (et être un exercice de programmation intéressant). L’IA n’a pas besoin d’être infaillible mais agir intelligemment suffisamment pour donner au joueur un défi de rester divertissant. Le problème actuel réside dans la définition d’agir intelligemment.Se référant à la défini précédemment, soit (b,x, b,y) être de la balle emplacement actuel et (p,x, p,y) désigne l’emplacement de la palette du lecteur de l’ordinateur. Le code de détection de collision se chargera du calcul des collisions, mais l’AI doit déplacer la palette de telle manière que la pagaie générera une collision avec le ballon. Par conséquent, inquiéter bx et px serait étrangère. En raison de la simplicité de Pong, il y a peu de cas à analyser.
Supposons py > by. Que cela signifie en réalité en ce qui concerne l’écran de jeu ? Le coin supérieur gauche de la raquette est inférieur à l’angle supérieur gauche de la balle sur l’écran. Le problème suivant est en définissant la stratégie optimale pour le lecteur d’ordinateur. En général, la meilleure stratégie pour le lecteur d’ordinateur est analogue à la stratégie du joueur humain. La meilleure façon de combler la distance verticale entre la bille et la pagaie doit gravir la pagaie, ou décrémenter py.
Logiquement, il y a un cas de gauche à gérer : quand py < = by. Dans l’écran de jeu, cette affaire va se passer si et seulement si l’emplacement de la pagaie est supérieur ou niveau avec l’emplacement de la balle. Ces deux cas pour l’IA l’autre miroir dans non seulement les qualités géométriques, mais aussi leur solution. En tant que joueur, la stratégie optimale dans cette situation consiste à déplacer la raquette vers le bas, ou incrémenter py.
L’algorithme peut maintenant plus intuitivement décrites. En ce qui concerne les coordonnées y de l’emplacement, si la balle est au-dessus de la palette, puis la pagaie se déplace vers le haut. L’inverse est aussi bien. Mais est-ce la stratégie optimale ? Quelque chose de caché se trouve basée sur des définitions arbitraires créées précédemment afin de permettre des algorithmes graphiques faciles. Tous les emplacements ont été définies pour être le coin supérieur gauche de l’objet. Par conséquent, l’algorithme actuel rend la tentative d’aligner à gauche-coins supérieurs de la raquette et la balle. Pas nécessairement une mauvaise stratégie, mais il ne peut pas donner au joueur une apparence d’intelligence.
La logique est bonne, mais les points de comparaison ne sont pas le meilleur choix. N’importe quel joueur humain implicitement essaie de maximiser la quantité de points de collision entre la balle et la raquette. Le meilleur emplacement sur la pagaie pour le ballon d’entrer en collision avec est en fait assez intuitif : le centre. Laissant la quantité maximale d’espace paddle sur les deux côtés d’une balle de collision permet une très bonne tolérance lors de la lecture. Pour ajuster l’algorithme, il suffit de comparer les milieux de la boule et pagaie pour donner l’AI l’apparence d’un joueur plus intelligent. En laissant h être la hauteur de la palette, puis (p,x, p,y + h/2) donne le centre de la raquette. Ce calcul fonctionne de manière similaire pour le bal.