Bonjour, dans le cadre de mes études, je me suis donné pour projet de réaliser le jeu Voltorb Flip en language Python.
Peut-être ne connaissez-vous pas ce jeu, aussi, si les curieux souhaite y jeter un oeil, sachez que je l'ai trouvé en Javascript sur ce lien ci-dessous :
http://www.mwyann.com/voltorbflip.html
Avant de vous copier/coller ce que j'ai commencé comme programme, j'aimerais vous expliquer très rapidement les règles du jeu afin de vous dire ce qu'il me reste à faire (et également ce que je n'arrive pas à faire).
Nous avons un tableau 5x5 dont chaque case renferme une valeur contenue dans un intervalle fermé de 0 à 3. Si le joueur retourne une case contenant un 0, il perd la partie. Le but du jeu est de retourner toutes les cases contenant des 2 et des 3. Pour que la réussite de la partie ne s'applique pas par pur hasard, des indices servent à aider le joueur quant aux probables positions des 0, 1, 2 et 3. Ces indices sont caractérisés par des chiffres se trouvant à droite et en bas du tableau du jeu. Il existe deux types d'indices pour ce jeu :
_ un chiffre donnant la somme des chiffres présentes sur une ligne/colonne.
_ un chiffre donnant le nombre de 0 présents sur une ligne/colonne.
Voici maintenant mon début de programme :
Avec ceci, j'arrive à créer mon tableau 5x5 sur Tkinter. J'ai également fais en sorte que les valeurs allant de 0 à 3 soient placés de manière aléatoire sur celui-ci.from Tkinter import *
import random
from operator import add
# création de la fenetre principale sous TKinter
Fenetre = Tk()
Fenetre.title('LeJeu')
nombre_de_mine = 6
nombre_de_un = 14
nombre_de_deux = 3
nombre_de_trois = 2
k = -1
r = random.randint(0,24)
n = 0
s = 0
cases = [k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k , k]
compteur = 0
while compteur < nombre_de_mine:
r = random.randint(0,24)
if cases[r] == -1:
cases[r] = 0
compteur = compteur + 1
compteur = 0
while compteur < nombre_de_deux:
r = random.randint(0,24)
if cases[r] == -1:
cases[r] = 2
compteur = compteur + 1
compteur = 0
while compteur < nombre_de_trois:
r = random.randint(0,24)
if cases[r] == -1:
cases[r] = 3
compteur = compteur + 1
for r in range (25):
if cases [r] == -1:
cases[r] = 1
print cases
for i in range(5):
for j in range(5):
l = Label(text= cases[n], relief=RIDGE)
l.grid(row=i, column=j, sticky=NSEW)
n = n + 1
reduce(add, cases[:4])
print s
Fenetre.mainloop()
Sauf que j'ai fais le plus facile (du moins je pense) et il me reste à faire ceci :
_ créer les indices i et j avec : i qui donne la somme des valeurs présentes sur chaque ligne et colonne; j qui donne le nombre de 0 présents sur chaque ligne et colonne
_ créer un booléen (je pense que c'est ça) qui me permet de faire en sorte que chaque case soit au début du jeu face cachée et créer une fonction qui me permettra de retourner les cases en cliquant dessus
_ définir les conditions d'arrêt du jeu.
Je ne suis pas très doué en language Python (ni dans les autres languages d'ailleurs) et j'ai cherché sur internet à créer mon booléen. Je me suis rendu sur des sites où je pouvais télécharger des Démineur écrit en Python, mais même avec ça je n'ai pas su trouver les lignes de programmation qui m'intéressais.
Quant à la création des indices i et j, je suppose qu'il me faut créer ces variables, les définir et mettre dans mon programme des conditions (même si mes essais ont été des échecs, j'imagine que ma piste est tout de même une bonne piste)
Je serai infiniment reconnaissant si une âme charitable pouvait m'aider dans les trois différentes tâches qui me reste à faire.
En vous remerciant d'avance pour vos réponses,
MrGalactique
Partager