Bucket Fill
El bucket fill hace un recorrido en este caso esta rellenando una figura de un color, es parecida a la cubetita del paint
El recorrido seguirá hasta que se tope con algún color diferente y entonces deja de colorear
Una pequeña imagen
Este es el código con algunos comentarios
que pueden remplazar algunas partes o si lo toman como ayuda tal vez les pueda funcionar
-
from Tkinter import *
-
-
class PaintBox( Frame ):
-
def __init__( self ):
-
Frame.__init__( self )
-
self.pack( expand = YES, fill = BOTH )
-
self.master.title( "BuketFile :D" )
-
self.master.geometry( "500x250" )
-
-
self.message = Label( self, text = "Presiona para colorear la figura" )
-
self.message.pack( side = BOTTOM )
-
-
# crea Canvas
-
self.myCanvas = Canvas( self )
-
self.myCanvas.pack( expand = YES, fill = BOTH )
-
-
# dibuja evento de Canvas
-
self.myCanvas.bind( "<B1-Motion>", self.paint )
-
self.myCanvas.create_oval( 10,10, 100,100, fill = 'gray' )
-
self.myCanvas.create_rectangle( 300,200, 100,100, fill = 'gray' )
-
#buket()
-
-
-
def paint( self, event ):
-
x1, y1 = ( event.x - 4 ), ( event.y - 4 )
-
x2, y2 = ( event.x + 4 ), ( event.y + 4 )
-
#if x1 ==10 and y1==10:
-
for x1 in range(100):
-
for y1 in range(100):
-
self.myCanvas.create_rectangle( x1, y1, x2, y2, fill = "red")
-
#while event.x > 0:
-
# x1++
-
# while event.y > 0:
-
# y1++
-
-
-
#def floodfill_queue(self, target, repl):
-
#if target != self.color:
-
# return
-
-
#q = [self]
-
#while q:
-
#n = q.pop(0)
-
#n.color = repl
-
#for x in [n.west(), n.east(), n.north(), n.south()]:
-
#if x.color == target:
-
#x.color = repl
-
#q.append(x)
-
#def buket(self,event):
-
# if event.x ==10 and event.y==10:
-
# while event.x > 0:
-
# while event.y > 0:
-
# paint()
-
-
-
def main():
-
PaintBox().mainloop()
-
-
if __name__ == "__main__":
-
main()
from Tkinter import *
class PaintBox( Frame ):
def __init__( self ):
Frame.__init__( self )
self.pack( expand = YES, fill = BOTH )
self.master.title( "BuketFile :D" )
self.master.geometry( "500x250" )
self.message = Label( self, text = "Presiona para colorear la figura" )
self.message.pack( side = BOTTOM )
# crea Canvas
self.myCanvas = Canvas( self )
self.myCanvas.pack( expand = YES, fill = BOTH )
# dibuja evento de Canvas
self.myCanvas.bind( "<B1-Motion>", self.paint )
self.myCanvas.create_oval( 10,10, 100,100, fill = 'gray' )
self.myCanvas.create_rectangle( 300,200, 100,100, fill = 'gray' )
#buket()
def paint( self, event ):
x1, y1 = ( event.x - 4 ), ( event.y - 4 )
x2, y2 = ( event.x + 4 ), ( event.y + 4 )
#if x1 ==10 and y1==10:
for x1 in range(100):
for y1 in range(100):
self.myCanvas.create_rectangle( x1, y1, x2, y2, fill = "red")
#while event.x > 0:
# x1++
# while event.y > 0:
# y1++
#def floodfill_queue(self, target, repl):
#if target != self.color:
# return
#q = [self]
#while q:
#n = q.pop(0)
#n.color = repl
#for x in [n.west(), n.east(), n.north(), n.south()]:
#if x.color == target:
#x.color = repl
#q.append(x)
#def buket(self,event):
# if event.x ==10 and event.y==10:
# while event.x > 0:
# while event.y > 0:
# paint()
def main():
PaintBox().mainloop()
if __name__ == "__main__":
main()
Aporte al Juego
Este juego me pareció muy interesante
ya que lo que vamos a hacer es muy parecido y podría ayudarnos a mejorar mucho
nuestro juego
También trataremos de tomar algunas ideas que se nos puedan olvidar
o poder aportar ideas a ellos para que su juego pueda mejorar mas
Otro también seria este videojuego en 3D ya que aporta algo de física
tanto interacción con los objetos como saltos y cosas parecidas
.
El código quedó como que a mitades. Ocuparías una cola (queue) al cual se van agregando los pixeles vecinos a un pixel que se está pintando y que tengan un color suficientemente parecido al pixel siendo pintado. Las aportaciones al proyecto grupal tienen que ponerse más concretos ASAP. 6 pts.
ResponderEliminar