Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 big_smile).

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 big_smile


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:

best_friend_fr a écrit :

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