Pages : 1
#1 Le 16/11/2007, à 20:03
- scholi
Fiver: Un petit jeu de logique
Bonjour à tous, j'ai fais un tout petit scripte python permettant de jouer à un jeu de logique. Le jeu est constitué de 5x5 cases toutes bleus. Le but est très simple: rendre toutes les cases rouge! La logique est assez simple, si l'on clique sur une case, elle-même ainsi que ses 4 voisines changent de couleur.
Voici le code:
#!/usr/bin/python
#Version: 1.1
from Tkinter import *
import random
size=(5,5)
class Fiver(Frame):
def click(self, event):
for i in range(size[0]*size[1]):
if event.widget==self.bt[i]:
row=i%size[1]
col=i/size[1]
break
self.bt[col*size[1]+row]["bg"]=["blue","red"][self.bt[col*size[1]+row]["bg"]=="blue"]
if row>0:
self.bt[col*size[1]+row-1]["bg"]=["blue","red"][self.bt[col*size[1]+row-1]["bg"]=="blue"]
if row<size[1]-1:
self.bt[col*size[1]+row+1]["bg"]=["blue","red"][self.bt[col*size[1]+row+1]["bg"]=="blue"]
if col>0:
self.bt[(col-1)*size[1]+row]["bg"]=["blue","red"][self.bt[(col-1)*size[1]+row]["bg"]=="blue"]
if col<size[0]-1:
self.bt[(col+1)*size[1]+row]["bg"]=["blue","red"][self.bt[(col+1)*size[1]+row]["bg"]=="blue"]
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.bts=(5,4)
self.bt=[]
for x in range(size[0]):
for y in range(size[1]):
self.bt.append(Button(bg=["blue","red"][random.randint(0,1)],height=self.bts[1],width=self.bts[0]))
self.bt[-1].grid(column=x, row=y)
self.bt[-1].bind("<Button-1>",self.click)
app=Fiver()
app.mainloop()
Liste des modifications
Version 1.1:
• Démarre le jeu avec une configuration aléatoire
• Ajout de la variable self.bts qui qui gère la taille des boutons (à changer si vous les voulez + gros/petit ,plus carré)
Have fun
Dernière modification par scholi (Le 16/11/2007, à 22:02)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#2 Le 16/11/2007, à 20:17
- best_friend_fr
Re : Fiver: Un petit jeu de logique
Salut
Une suggestion:
Partir d'une position aleatoire.
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 16/11/2007, à 21:52
- scholi
Re : Fiver: Un petit jeu de logique
bonne idée
Je vais faire ça. Je vais donc aussi changer SEULEMENT le code du premier post en indiquant la version pour vous faciliter la tà¢che
EDIT: C'est fait. La version 1.1 démarre avec une position initiale aléatoire
Dernière modification par scholi (Le 16/11/2007, à 21:55)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#4 Le 16/11/2007, à 22:34
- best_friend_fr
Re : Fiver: Un petit jeu de logique
Ce n'est absolument pas pour rabaisser ton travail, mais je trouve ca super que tu aies montrer ce code, qui fais un jeu en peu de lignes (meme si elles sont tres bien et que tout le merite t'en reviens et tout et tout ).
Mais ca pourra peut-etre convaincre les gens qui ont peur de la programmation qu'il n'y a pas besoin de 10000 lignes de C++ pour faire un truc
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#5 Le 16/11/2007, à 22:55
- scholi
Re : Fiver: Un petit jeu de logique
tu peux pas être plus directe, car j'ai pas pigé le sens de ton message. Grammaticalement elle veut rien dire et j'arrive pas à décoder.
Tu pourrais appliquer ta signature:
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
Pages : 1