Jeu samegame python
polin
-
polin -
polin -
Bonjour tout le monde,
Après avoir fait un DUT en statistique, je suis rentré en L3 en début d'année, et un de nos profs nous a proposé de réaliser un jeu samegame en Python avec tkinter. N'ayant jamais fait de python auparavant, j'aurais besoin d'une âme charitable pour me réaliser ce projet. Je sais que c'est un peu facile de demander à ce qu'on me fasse mes devoirs, mais j'ai passé tellement de temps dessus sans parvenir à réaliser quelque chose d'intéressant que j'aurais bien besoin d'aide.
J'ai quand même réaliser une fonction pour repérer les voisins qui me parait pas trop mal :
Donc si quelqu'un pouvait me venir en aide, je le remercie par avance.
Après avoir fait un DUT en statistique, je suis rentré en L3 en début d'année, et un de nos profs nous a proposé de réaliser un jeu samegame en Python avec tkinter. N'ayant jamais fait de python auparavant, j'aurais besoin d'une âme charitable pour me réaliser ce projet. Je sais que c'est un peu facile de demander à ce qu'on me fasse mes devoirs, mais j'ai passé tellement de temps dessus sans parvenir à réaliser quelque chose d'intéressant que j'aurais bien besoin d'aide.
J'ai quand même réaliser une fonction pour repérer les voisins qui me parait pas trop mal :
def neighbour(self, col, row, color):
"""Lists neighbors of the same symbol"""
Zone = []
symbol = self[row][column]
Zone.append([row,col])
i=0
while i < len(Zone):
if self[Zone[row][0]-1][Zone[row][1]] == color:
if [Zone[row][0]-1,Zone[row][1]] not in Zone:
Zone.append([Zone[row][0]-1,Zone[row][1]])
# Checks top neighbour
if self[Zone[row][0]+1][Zone[row][1]] == color:
if [Zone[row][0]+1,Zone[row][1]] not in Zone:
Zone.append([Zone[row][0]+1,Zone[row][1]])
# Checks bottom neighbour
if self[Zone[row][0]][Zone[row][1]-1] == color:
if [Zone[row][0],Zone[row][1]-1] not in Zone:
Zone.append([Zone[row][0],Zone[row][1]-1])
# Checks left neighbour
if self[Zone[row][0]][Zone[row][1]+1] == color:
if [Zone[row][0],Zone[row][1]+1] not in Zone:
Zone.append([Zone[row][0],Zone[row][1]+1])
# Checks right neighbour
i += 1
return Zone
Donc si quelqu'un pouvait me venir en aide, je le remercie par avance.
A voir également:
- Jeu samegame python
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Citizen code python avis - Accueil - Outils
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu logo - Télécharger - Jeux vidéo
6 réponses
Bonjour,
peux-tu expliquer les règles de ton jeu ?
Mais déjà au premier coup d'oeil, la structure de ta boucle while i < len(Zone) me parait un peu bizarre. Il me parait plus pythonesque d'écrire à la place:
for z in Zone:
(en plus sans while c'est déjà moins riqué ;) )
peux-tu expliquer les règles de ton jeu ?
Mais déjà au premier coup d'oeil, la structure de ta boucle while i < len(Zone) me parait un peu bizarre. Il me parait plus pythonesque d'écrire à la place:
for z in Zone:
(en plus sans while c'est déjà moins riqué ;) )
Bonjour Bertrand,
déja, je te remerci de ta réponse.
Voici le sujet du jeu :
Ecrire un programme samegame qui implémente le jeu classique du même nom. Avant de commencer à jouer, l'utilisateur doit spécifier les paramètres du jeu, c'est-à-dire la taille de la grille, ainsi que le nombre de couleurs utilisées pour les cases. La grille initiale peut être créée soit entièrement au hasard (en choisissant une couleur aléatoire pour chaque case, avec le risque d'obtenir certaines configuration où il sera impossible de gagner), soit en assurant qu'il existe effectivement une solution pour la configuration proposée. Une fois la grille créée, se met en place une boucle d'interaction dans laquelle le joueur va sélectionner une case à chaque tour, pour tenter d'éliminer l'ensemble des couleurs de la grille. La fin du jeu doit être détectée par le programme: soit lorsque la grille a été entièrement vidée, soit lorsqu'il n'y a plus de coup jouable.
Exemple d'exécution :
================================================================================
SAMEGAME
Note : enter an empty line to stop the interaction loop
================================================================================
<> Enter game configuration : size=9x4 colors=3
A B C D E F G H I
+---+---+---+---+---+---+---+---+---+
1 | X | Y | Z | Z | Y | Y | X | Z | Y |
+---+---+---+---+---+---+---+---+---+
2 | Z | Z | Y | X | X | Y | X | Y | Y |
+---+---+---+---+---+---+---+---+---+
3 | Z | Y | Y | Y | X | Y | Y | Z | Z |
+---+---+---+---+---+---+---+---+---+
4 | X | Z | X | X | Y | X | Z | X | X |
+---+---+---+---+---+---+---+---+---+
<> Enter cell : C1
A B C D E F G H I
+---+---+---+---+---+---+---+---+---+
1 | X | Y | | | Y | Y | X | Z | Y |
+---+---+---+---+---+---+---+---+---+
2 | Z | Z | Y | X | X | Y | X | Y | Y |
+---+---+---+---+---+---+---+---+---+
3 | Z | Y | Y | Y | X | Y | Y | Z | Z |
+---+---+---+---+---+---+---+---+---+
4 | X | Z | X | X | Y | X | Z | X | X |
+---+---+---+---+---+---+---+---+---+
<> Enter cell :
Voila, et encore merci de prendre de ton temps pour me répondre.
déja, je te remerci de ta réponse.
Voici le sujet du jeu :
Ecrire un programme samegame qui implémente le jeu classique du même nom. Avant de commencer à jouer, l'utilisateur doit spécifier les paramètres du jeu, c'est-à-dire la taille de la grille, ainsi que le nombre de couleurs utilisées pour les cases. La grille initiale peut être créée soit entièrement au hasard (en choisissant une couleur aléatoire pour chaque case, avec le risque d'obtenir certaines configuration où il sera impossible de gagner), soit en assurant qu'il existe effectivement une solution pour la configuration proposée. Une fois la grille créée, se met en place une boucle d'interaction dans laquelle le joueur va sélectionner une case à chaque tour, pour tenter d'éliminer l'ensemble des couleurs de la grille. La fin du jeu doit être détectée par le programme: soit lorsque la grille a été entièrement vidée, soit lorsqu'il n'y a plus de coup jouable.
Exemple d'exécution :
================================================================================
SAMEGAME
Note : enter an empty line to stop the interaction loop
================================================================================
<> Enter game configuration : size=9x4 colors=3
A B C D E F G H I
+---+---+---+---+---+---+---+---+---+
1 | X | Y | Z | Z | Y | Y | X | Z | Y |
+---+---+---+---+---+---+---+---+---+
2 | Z | Z | Y | X | X | Y | X | Y | Y |
+---+---+---+---+---+---+---+---+---+
3 | Z | Y | Y | Y | X | Y | Y | Z | Z |
+---+---+---+---+---+---+---+---+---+
4 | X | Z | X | X | Y | X | Z | X | X |
+---+---+---+---+---+---+---+---+---+
<> Enter cell : C1
A B C D E F G H I
+---+---+---+---+---+---+---+---+---+
1 | X | Y | | | Y | Y | X | Z | Y |
+---+---+---+---+---+---+---+---+---+
2 | Z | Z | Y | X | X | Y | X | Y | Y |
+---+---+---+---+---+---+---+---+---+
3 | Z | Y | Y | Y | X | Y | Y | Z | Z |
+---+---+---+---+---+---+---+---+---+
4 | X | Z | X | X | Y | X | Z | X | X |
+---+---+---+---+---+---+---+---+---+
<> Enter cell :
Voila, et encore merci de prendre de ton temps pour me répondre.
ok. as-tu des questions plus précises sur la manière de t'y prendre ? Ton souci est plus de modéliser ça ou certains aspects du code te laissent perplexes ?
En fait, le problème c'est que notre prof de programmation ne nous a jamais fait coder nous même, il nous présentait juste des programmes que lui avait réaliser. Du coup, je n'arrive pas à comprendre Python, et je ne vois pas comment je peux réussir à supprimer certaines cases juste en sélectionnant ses coordonnées.
Je ne sais même pas comment créer une matrice composée de valeurs aléatoires...
Je ne suis donc pas rendu au bout de ce projet...
Je ne sais même pas comment créer une matrice composée de valeurs aléatoires...
Je ne suis donc pas rendu au bout de ce projet...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon. 1ere chose à faire: trouve toi un bon tutoriel (https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python par exemple)
Oublie quelques heures ton projet et concentre-toi là dessus. Va au moins jusqu'au chapitre sur l'objet.
Une fois que tu auras fait tes games, reviens là-dessus et ça te paraitra déjà moins compliqué :)
A mon avis, il va te falloir plusieurs objets séparés:
_la grille
_l'info contenue dans tes cases (qui se manipule indépendamment de la grille)
En tapant les bons mots-clés sur le net par la suite, tu trouveras les fonctions dont tu as besoin pour réaliser telle ou telle chose (une matrice, la remplir aléatoirement, la parcourir et calculer les couleurs entourant chaque case...)
Mais encore une fois, commence par les gammes, décompose au max ce que tu dois faire en opérations simples et sépare ta grille des "couleurs" :)
Oublie quelques heures ton projet et concentre-toi là dessus. Va au moins jusqu'au chapitre sur l'objet.
Une fois que tu auras fait tes games, reviens là-dessus et ça te paraitra déjà moins compliqué :)
A mon avis, il va te falloir plusieurs objets séparés:
_la grille
_l'info contenue dans tes cases (qui se manipule indépendamment de la grille)
En tapant les bons mots-clés sur le net par la suite, tu trouveras les fonctions dont tu as besoin pour réaliser telle ou telle chose (une matrice, la remplir aléatoirement, la parcourir et calculer les couleurs entourant chaque case...)
Mais encore une fois, commence par les gammes, décompose au max ce que tu dois faire en opérations simples et sépare ta grille des "couleurs" :)