Puissance 4

Résolu/Fermé
momortral Messages postés 2 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 9 mai 2015 - 25 mars 2015 à 22:20
Blazzfreezz Messages postés 6 Date d'inscription mardi 31 mars 2015 Statut Membre Dernière intervention 11 avril 2015 - 11 avril 2015 à 16:08
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.
A voir également:

1 réponse

Blazzfreezz Messages postés 6 Date d'inscription mardi 31 mars 2015 Statut Membre Dernière intervention 11 avril 2015
1 avril 2015 à 07:47
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
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 mardi 31 mars 2015 Statut Membre Dernière intervention 11 avril 2015
11 avril 2015 à 10:07
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 mardi 31 mars 2015 Statut Membre Dernière intervention 11 avril 2015
11 avril 2015 à 16:08
>>> 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