Jump to content
Laurent GODEFROY

Mini - Projet de Python (1ADS) : trois petits jeux de stratégie

Recommended Posts

Bonjour,


 


 


Ce fil de discussion est créé pour que vous puissiez échanger autour de votre mini-projet de Python. Il concerne la programmation de trois petits jeux de stratégie.


Vous avez plus de quatre semaines pleines pour réaliser vos codes, et ce individuellement. 


 


Bon courage à vous !


Share this post


Link to post
Share on other sites

Bonjour,

 

Puis-je utilisé les modules et fonctions de la librairie standard de python histoire de factorisé un peu mon code et de ne pas recréer ce qui existe déjà? 

 

Cordialement 

Share this post


Link to post
Share on other sites

Bonjour,

 

Puis-je utilisé les modules et fonctions de la librairie standard de python histoire de factorisé un peu mon code et de ne pas recréer ce qui existe déjà? 

 

Cordialement 

 

 

Bonjour,

 

Comme un post similaire au tien avait déjà été créé, je me permets de t'indiquer une réponse déjà apportée par Laurent GODEFROY, en supposant bien entendu que ses attentes soient toujours identiques :

 

Quand on apprend il faut accepter de réinventer la roue parfois.

 

Cordialement,

Share this post


Link to post
Share on other sites

Bonjour,

 

Dans la premiere partie la phrase " On supposera qu’il en existe un, on ne testera pas ce fait ici. " signifie qu'il faut le gérer dans une fonction externe ou qu'elle n'est pas a gérer.

Quand a toutes les erreurs dans chacun des exercices possible tel que les caractères non autorisé (a,b , * %, ...), int qui sort du tableau, etc faut ils les gérer toutes ou seulement si elles sont explicitement demandées dans le sujet et considéré que les entrée sont correct?

Share this post


Link to post
Share on other sites

Bonjour Théo,

 

Dans la premiere partie la phrase " On supposera qu’il en existe un, on ne testera pas ce fait ici. " signifie qu'il faut le gérer dans une fonction externe ou qu'elle n'est pas a gérer.

 

 

Il faudra bien sûr gérer cela avec une fonction dédiée. Rappelons d'ailleurs que vous avez le droit de rajouter des sous-programmes si cela est pertinent. Mais ce test sera effectué en amont de l'appel de la fonction "selectPawn".

 

 

Quand a toutes les erreurs dans chacun des exercices possible tel que les caractères non autorisé (a,b , * %, ...), int qui sort du tableau, etc faut ils les gérer toutes ou seulement si elles sont explicitement demandées dans le sujet et considéré que les entrée sont correct?

 

On ne s'occupera pas des saisies de caractères spéciaux ou lettres. On vérifiera juste que les entiers saisis sont cohérents vis-à-vis des dimensions du plateau et des règles du jeu.

Share this post


Link to post
Share on other sites

Bonjour,

 

j'ai une question sur l'exemple donné du troisième jeux: 

 

Rappel: on nous dit que pour poser un pion il faut que se soit "sur une case vide du plateau de telle sorte que pour cette case le nombre de pions adjacents de l’adversaire (orthogonalement ou en diagonale) présents sur le plateau soit inférieur ou égal au nombre de pions adjacents du joueur. "

 

L'exemple nous montre les endroits auquel le joueur peux poser son pion, comme on peut voir sur l'image ci-dessous:

 

                                             Capture_d_e_cran_2016_11_04_18_18_05.png

 

 

Je ne comprend pas pourquoi, la case tout en bas à gauche n'est pas jaune ? Car il n'y a aucun pion blanc adjacent verticalement, horizontalement ni en diagonale.

Es-ce une erreur d'énoncé, ou es-je mal compris le jeux ?

(On retrouve la même choses dans le même exemple, au le troisième tour du joueur noir)

 

Merci d'avance,

cordialement

Share this post


Link to post
Share on other sites

Bonjour,

 

J'aimerais savoir s'il est possible dans l'affichage d'une liste, par exemple : [['x', 'x', 'x', 'x']] de supprimer les guillemets, les brackets et les virgules de telle sorte à ce que la liste s'affiche comme cela : x x x x ?

 

Merci d'avance,

Cordialement.

Share this post


Link to post
Share on other sites

Bonjour Isaac,

 

je ne sais pas si tu a fait exprès de mettre deux fois des crochets (a-tu voulue faire un tableau a double dimension ?)

Je suppose que tu a fait print ( tab )

Essaye plutôt avec un for in, exemple:

 

Pour un tableau a une diemsions:

 

Supposons que ta liste s'appel tab = ['x', 'x', 'x', 'x'], et n = 4 le nombre d'element dans la liste.

 

for i in range( n ):

    print ( tab[ i ], " ", end="" )

 

le end="" permet d'empêcher le retour à la ligne pour pouvoir afficher sur la même ligne

 

Pour un tableau a deux dimensions:

 

Supposons que ta liste s'appel tab = [ ['x', 'x'], ['x', 'x'], ['x', 'x'] ].

 

C'est la même choses, sauf avec un double for:

for ... in ... :

    for ... in ... :

        print ( tab[ ... ] [ ... ], " ", end="" )

    print('') #Cela permet de faire le retour à la ligne

 

je te laisse compléter, je ne sais pas si j'ai le droit de donner la réponse ici  :rolleyes:

Share this post


Link to post
Share on other sites

Bonjour,

 

@Joris : tu as raison le second joueur peut poser un pion sur la case en bas à gauche. Coquille de ma part, mes excuses.

 

@Isaac : la réponse de Joris est correcte, et effectivement comme il le mentionne il ne peut en dire plus.

 

@Romain : utilise la fonction "print" et réalise des affichages simples, cela fonctionnera partout.

Share this post


Link to post
Share on other sites

Bonjour, j'ai une question, sommes nous obligé de nous tenir à ce qu'il y a marqué dans le Word concernant la façon de coder, par exemple avec l'utilisation d'une fonction newBoard(n,p) ? Est ce que l'on peut passer par un autre moyen tant que cela fonctionne?

Share this post


Link to post
Share on other sites

Bonjour Gaëtan,

 

Comme mentionné dans le texte, les dimensions du plateau sont passées en paramètre à la procédure de jeu "breaktrough". Idem pour les autres jeux. Ton code doit donc fonctionner pour toutes les valeurs possibles.

Share this post


Link to post
Share on other sites

Bonjour,

 

Je ne vois absolument pas a quoi vont servir les fonctions newboard des 3 jeux, si j'ai bien compris je dois retourné une liste à 2 dimensions toute simple avec n lignes et p colonnes ?? Si c'est cela les fonctions newboard ne servent à rien. Si vous pouvais m'expliqué l'utilité des fonctions newboard svp

 

Cordialement 

Share this post


Link to post
Share on other sites

Bonjour Audric,

 

Les fonctions "newBoard" retournent en effet une liste bi-dimensionnelle représentant les plateaux de jeu. Avec les positions initiales des pions dans le cas du jeu "breaktrough".

 

 

 Si c'est cela les fonctions newboard ne servent à rien. 

 

Si justement, elles servent à faire ce qui est mentionné ci-dessus.

Share this post


Link to post
Share on other sites

Bonjour, j'ai très souvent ce problème et je comprends pas d'où il peut venir, j'ai ce "none" qui s'affiche très souvent lorsque j'exécute mon programme, pouvez-vous m aider ? Dans l'exemple de cet image, il s agit des deux premières fonctions du premier exercice. Merci

252359none.png

Share this post


Link to post
Share on other sites

Bonjour Reda,

 

Rien de bien surprenant, "display" est une procédure, c'est-à-dire qu'elle ne renvoie aucune valeur. Quand tu la composes avec un "print" il est donc normal d'obtenir un "None" comme affichage. Remplace ton "print(display(a,5,4))" par "display(a,5,4)".

 

P.S. Utiliser un mot clé du langage, "list" en l'occurence, comme nom de variable n'est pas recommandé.

Share this post


Link to post
Share on other sites

Bonjour,

 

Est-il obligatoire de nommer les fonctions demandées exactement comme présentées dans le sujet ?

C'est-à-dire, par exemple, peut-on renommer la fonction `newBoard` en `new_board` afin de pouvoir être le plus proche possible des recommandations de la PEP 008 ?

De même pour les arguments de ces fonctions, comme `n` et `p` que l'on pourrait tout aussi bien nommer, respectivement, `board_height` et `board_width` pour plus de clarté ?

Enfin, l'inclusion de ces paramètres est-elle aussi mandataire ? Par exemple, ma fonction `displayBoard` n'utilise pas les paramètres `n` et `p`, dois-je tout de même les laisser dans la définition des arguments requis par la fonction ?

 

Merci bien.

 

Cordialement,

DOURNEAU PIerre-Louis.

Share this post


Link to post
Share on other sites

Salut Pierre-Louis,

 

Plutôt que de recalculer régulièrement les dimensions de cette liste on préfèrera les passer en paramètres de nos sous-programmes.

 

as-tu tenu compte de cette consigne pour ta fonction display ? si oui, comment t'y es-tu pris sans calculer les dimensions et sans dimensions en paramètre ?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×