Puissance 4

Résolu
momortral Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Blazzfreezz Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
bonjour,
je suis en prépa intégré en 1e année, et j'ai choisi avec un binome un sujet de TIPE sur le jeu puissance 4. Notre prof nous a donc demande de réfléchir aux différentes étapes du jeu, à chaque tour. Nous devons donc créer une IA capable de réfléchir et non pas de jouer au hasard (bloquer 3 jetons alignés ou essayer "d'attaquer",...). Le prof nous a alors conseille d'utiliser une matrice.
Nous sommes censés donner un algorithme ou un script d'une fonction de détection par l'IA lorsque 3 jetons du vrai joueur sont alignés, afin d'empecher le joueur de gagner. Cependant je ne comprends pas comment faire pour détecter ce cas.
Merci de votre aide.

1 réponse

Blazzfreezz Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

Tu devrais faire la meme chose que pour ton algorithme qui verifie si une personne a gagner ou pas sauf que la tu renvoi les position possible.

0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0
0 2 1 2 1 0 0 0
0 : sans pion
1 : tes pions
2 : les pions de l'IA

Ta fonction dois renvoyer 2 et 6
Tu devras aussi verifier si les pion peuvent "bloquer" l'alignement des 4 pions, en regardant si il y a un pion en dessous, dans ce cas la, la colonne 6 ne bloquera pas. Donc tu places le pion dans la 2nd colonne

Apres pour ce qui est de la puissance 4 en diagonale, c'est un peu plus complique, donc je te laisse chercher :p
0
momortral
 
Merci pour votre aide.
On va essayer de faire en sorte de regarder les 8 (7) cases autour de la derniere position jouee. Si l'une des cases appartient aussi au joueur, l'ordi cherchera dans cette meme direction si d'autres pions sont alignes.
Pour la matrice utilisee comme grille, il suffit de creer un tableau de 6 listes de hauteur et 7 de longueur?
Merci.
0
Blazzfreezz Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
En C c'est facile de creer un tableau a 2 dimension : int tableau[6][7];
mais en python je sais pas vraiment..
Il vaut mieux crée 1tableau a 2 dimension plutot que 6 tableau a 1 dimension.

J'ai finalement trouve ce code en python, a toi de l'adapter ;)

Tableau = [[0 for x in range(5)] for x in range(5)]
Tableau[0][0] = 1
Tableau[1][3] = 4
Tableau[4][0] = 5

Ce qui donnera
1 0 0 0 0
0 0 0 4 0
0 0 0 0 0
0 0 0 0 0
5 0 0 0 0
0
Blazzfreezz Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
>>> import numpy
>>> numpy.zeros((5, 5))
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
0