Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jrcjrcjrc12

#1
Cita de: tincopasan en 17 Mayo 2016, 01:44 AM
no uso ni por casualidad codeskulptor por varios motivos, pero viendo lo que intentas hacer y ya que:
Código (python) [Seleccionar]

canvas.draw_text(str(oracion), posicion, 30, "skyblue")

evidentemente el primer argumento debe ser una cadena que estás manejando en la función update, al hacer split da como resultado una lista, deberías dentro de la función declarar por ejemplo:
Código (python) [Seleccionar]

oracion = oracion[0]
 
y de esa forma obtener la primer palabra de la lista, el resto ya es por tu cuenta.





Hola tincopasan

gracias por tu respuesta pero la verdad o estoy tapado o no se que estoy pensando
e intentado hacer de varias formas pero la unica que me resulta es creando varias variables, varias posciones, y varios canvas

pero el detalle esta es que es limitado a la cantidad de palabras (ejemplo puedo colocar para 7 palabras) pero si la oracion lleva mas de las 7 palabras quedaria por fuera

la otra que se me ocurrio es usar un for dentro de la funcion update
http://www.codeskulptor.org/#user41_WV9ue6w9Fj_1.py
__________________________________
import simplegui
import random

oracion = ""
palabras = ""
position = [50, 50]
width = 500
height = 500
interval = 800

def update(texto):
    global oracion
    global palabras
    oracion = texto.split()
    for palabras in oracion:
        return palabras
   
def tick():
    x = random.randrange(0, width)
    y = random.randrange(0, height)
    position[0] = x
    position[1] = y
   
def draw(canvas):
    canvas.draw_text(str(palabras), position, 36, "skyblue")
frame = simplegui.create_frame("Home", width, height)
texto = frame.add_input("Escriba su oracion:", update, 150)
frame.set_draw_handler(draw)
timer = simplegui.create_timer(interval, tick)
frame.start()
timer.start()
___________________________________

pero igual me sigue mandando 1 sola palabra de la oracion el resto no

la verdad ya ni se que hacer, llevo 2 dias en esto jaja

Gracias de nuevo por tu respuesta
#2
Buenas ante todo saludos, soy nuevo por aca
me disculpan si tenia que presentarme en alguna parte del foro, pero no e revisado bien

tengo un problema con un ejercicio que me mandaron en clases de python

es el siguiente

>>>>  Hacer un programa que solicice una oracion y divida las palabras en la pantalla con movinientos diferentes de cada palabra <<<<<

lo estoy haciendo en la pagina de ccodeskulptor.org  (una excelente pagina donde puedes hacer tus programas y pasarlos con el link  >>>>>

http://www.codeskulptor.org/#user41_FXiCUyquNL_0.py

________________________________________________________________
Código (python) [Seleccionar]
# programa

import simplegui
import random

oracion = ""
posicion = [75, 75]
ancho = 1100
alto = 800
intervalo = 900

def update(texto):
   global oracion
   oracion = texto.split()
def tick():
   x = random.randrange(50, 600)
   y = random.randrange(20, 600)
   posicion[0] = x
   posicion[1] = y
def draw(canvas):
   canvas.draw_text(str(oracion), posicion, 30, "skyblue")
frame = simplegui.create_frame("texto", ancho, alto)
texto = frame.add_input("Escriba su oracion:", update, 150)
frame.set_draw_handler(draw)
timer = simplegui.create_timer(intervalo, tick)
frame.start()
timer.start()python


_____________________________________________________________

como pueden ver ya separe la oracion usando el metdo Split pero no se como hacer para que me muestre las palabras en lugares distintos, con distintos movimientos

E intentado tomarlo como una lista pero al tratar de usar >> str(oracion(0)) << me dice que no es elegible

Si alguien puede ayudarme a solucionar esto se lo agradezco de antemano