Sopa de Letras-construcción de grilla

Hola! Como anda la comunidad??
Mi nombre es Diego, y tengo algunas dudas.
Estoy tratando de hacer un juego de Sopa de Letras, pero estoy teniendo problemas para realizar la grilla.
Que método me recomendarían para hacerlo?
Tendría que usar una lista de listas? o tendría que hacer casillero por casillero?
Desde ya muchas gracias.

Diego.

Buenas, @Diego_Giaquinta !

Disculpa por tardar en responder, pero realmente le he estado dando vueltas a este asunto, y no sé encontrar una manera “fácil” de realizar una sopa de letras.

Quizás lo más sencillo seria realizar nivel por nivel y con actores con la imagen del texto.

Lo digo por que de otra forma seria necesario construir un diccionario de posibles palabras, y comprobar combinaciones en una grilla (tampoco se me ocurre una manera sencilla de como hacer las comprobaciones en diagonal y diagonal invertida), lo que complicaria muchísimo todo.

Tienes hecho ya algo de código, alguna prueba que puedas mostrar y que nos de pié a darte ideas de como se podria continuar?

Esperamos noticias tuyas!

Un abrazo. :wink:

Hola @jordinur !
Gracias por tu respuesta. La idea es hacer algo sencillo, con palabras horizontales y verticales solamente (al menos por ahora). Estuve avanzando un poco. Lo que hice fue crear un actor para cada uno de los casilleros. Estos casilleros se completan con datos que tengo almacenados en una matriz donde se encuentran letras aleatorias, y también la/s palabra a encontrar.
Aca dejo algo para que chusmen

m es la matriz
y es la ubicacion en Y para situarlo en la altura que quiero
u es el nombre de la fila que quiero cargar

Espero sus opiniones! Gracias

def CreoGrilla(m,y,u):
	Fila=[]
	
	c0=pilas.actores.Texto()
	c0.texto=m[u][0]
	c0.x=-315
	c0.y=y
	c0.escala=0.50

	c1=pilas.actores.Texto()
	c1.texto=m[u][1]
	c1.x=-285
	c1.y=y
	c1.escala=0.50

	c2=pilas.actores.Texto()
	c2.texto=m[u][2]
	c2.x=-255
	c2.y=y
	c2.escala=0.50

	c3=pilas.actores.Texto()
	c3.texto=m[u][3]
	c3.x=-225
	c3.y=y
	c3.escala=0.50
	
	c4=pilas.actores.Texto()
	c4.texto=m[u][4]
	c4.x=-195
	c4.y=y
	c4.escala=0.50
	
	c5=pilas.actores.Texto()
	c5.texto=m[u][5]
	c5.x=-165
	c5.y=y
	c5.escala=0.50
	
	c6=pilas.actores.Texto()
	c6.texto=m[u][6]
	c6.x=-135
	c6.y=y
	c6.escala=0.50
	
	c7=pilas.actores.Texto()
	c7.texto=m[u][7]
	c7.x=-105
	c7.y=y
	c7.escala=0.50
	
	Fila.append(c0)
	Fila.append(c1)
	Fila.append(c2)
	Fila.append(c3)
	Fila.append(c4)
	Fila.append(c5)
	Fila.append(c6)
	Fila.append(c7)
	
	return Fila