Discuss Scratch

camilomodelado
New to Scratch
5 posts

Problema con random en lista y posiciones de pelotas.

Hola!

Pregunte en el foro en ingles y me derivaron par aca xD.

Bueno les cuento, mi programa consta de un estilo parecido al antiguo juego Puzzle Bubble, en el que lanzabas una burbuja y reventabas las que estaban arriba del mismo color.
En el caso de mi scratch, tengo un cañon que lanza una bola con un numero en su interior, cuyo proposito es chocar con 2 bolas arriba que sumadas den como resultado el valor de la bola lanzada.
Ejemplo:
Lanzas la bola 8, y arriba debiera chocar con la 6 y2 (contiguas).
Esa es la logica pero tengo un problema con el programa que he intentado solucionar y ya me duele la cabeza tanto pensarlo xD.

Sucede que arriba tengo una lista llamada pelotas de 10 espacios. Tambien una variable posicionazar que contiene un valor al azar generado.
Lo que hace el codigo es fijar un valor casilla (posicion en la lista) a 0, y fijar posicion x a -135. Despues lanza un valor al azar entre 0 y 9, lo asigna a pelota azar y dependiendo del valor que de, llama a un objeto pelota (de las que estan arriba), y la muestra, luego asigna a casilla + 1, y posicion x +29. (para que avanze a la sigueinte casilla, y a la siguiente posicion en x)

Por ejemplo si el valor dio 5, llama a la pelota 5 y la muestra.
Pero el drama es que para el juego necesito tener mas de una pelota del mismo tipo, por ejemplo necesito tener 2 veces el 4, para resolver el 8, o dos veces el 1, para obtener el 2 en las sumas etc.

Genere un ciclo verificador donde hago un contador i = 0, y dentro, si es que el valor asignado por pelota azar ya estaba en el arreglo posicion, lo clona, para asi generar otro numero igual., luego asigna i + 1 para completar el ciclo hasta 10 o hasta q terminen las casillas.


Bueno esa es la idea, pero me sucede el error:

Asigno bola, revisa en el arreglo, esta? si? lo clona, y asigna contador + 1.
En el segundo ciclo: asigna bola, revisa arreglo, esta? si?, lo clona (pero aca la revision ha pasado nuevamente por la posicionde casillas 0 ,1 ,2 entonces vuelve a clonar lo que al principio ya habia clonado).

Esto me genera muchas bolas innecesarias (mas de las 10 bolas de tope de la lista).

Otro error que tambien no he solcionado, es la posicion.
La primera bola se fija en posicion inicial -135, la segunda en 135 + 29, la tercera en 135 +29 +29 y asi sucesivamente.
Pero si una bola sale repetida, la fija en la ultima posicion q se le dio.

Ejemplo para la bola 0:

Si el lanzamiento da: 1 3 0 4 5 7 8 2, si el 0 se repitiera aca: 1 3 0 4 5 7 0 2, me quedaria de la siguiente forma: 1 3 vacio 4 5 7 0 2.
O sea el primero cero desaparece y aparece 2 veces en la penultima posicion (graficamente para el juego 1 arriba del otro)
Es un ejemplo, pero no puedo solucuionarlo.

La idea dec omo debiera funcionar e sla sigueinte:

Casilla lista= 0
Repetir hasta casilla = 10
Lanza Azar
Si azar esta en la lista desde 1 a 10
asigna azar a casilla i, y asigna su clon a i+1 ( con el consiguiente movimiento en x + 29 de posiciones en X).
Si no esta en azar.
solo asigna bola a i y asigna posicion x +29.
fin repetir

Este es el ciclo supuesto para q en las casillas se vayan agregando los numero al azar uno al lado de la otro hasta que se completen las 10 casillas, independiente si sale clon o no, pero hay hacer que el ciclo al verificar la lista en cada asignacion, no vuelva a clonar las que ya clono y no vuelva a mover la pelota de su posicion ya asignada.

No se como puedo hacer esos arreglos.

Trate de ser lo mas explicativo posible

este es mi codigo, si me pueden echar una mano

http://scratch.mit.edu/projects/11327242/
Muchas gracias a todos

armique
New to Scratch
39 posts

Problema con random en lista y posiciones de pelotas.

Hola,

Espero que no te molestara mi comentario sobre los idiomas
Lo cierto es que bucear en unos scripts de un idioma que no dominas no es fácil.
Bueno, una cosa muy importante: no se pueden clonar variables, sólo objetos. Yo creo que esa es la fuente de los problemas.
No entiendo la necesidad de repetir los números, creo que sería preferible que la bola del cañón fuera directamente del valor de alguna de las parejas que se han formado fortuitamente, y más sencillo: si no tienes experiencia aún con clones, no te recomiendo usarlos en este proyecto, porque su gran dificultad es identificarlos correctamente para que reaccionen ante acciones externas (como elchoque con la bola del cañón).
He hecho un intento sólo para el posicionamiento, requiere ajustes, pero dime si pueden ir por aquí los tiros:
http://scratch.mit.edu/projects/11361894/
Aunque yo no soy experto en Scratch, ni mucho menos, me voy a permitir hacerte una observación: haz las cosas sencillas, abusas mucho de “enviar” y “al recibir”, hay muchas órdenes de este tipo, una lista interminable.
Una sugerencia: aprende bien a trabajar con listas, son la clave de los buenos programas.
Y una opinión: la intro es larguísima, cualquier niño que esté aprendiendo a sumar no podrá seguir el ritmo de lectura o llegará al juego agotado. Te sugiero que la hagas más corta o, al menos, dar la posibilidad de saltarsela.

Edito: debo haber tocado algo en la dirección de la bola del cañón, porque no apunta bien, pero ahora no tengo tiempo de revisarlo.

Espero que ayude.

Last edited by armique (July 12, 2013 10:08:27)

camilomodelado
New to Scratch
5 posts

Problema con random en lista y posiciones de pelotas.

Muchas gracias por tu ayuda, lo estaba viendo y realemnte se fijan en las posiciones correctas, pero fui a ver y consultar a mi profesor que le faltaba al programa y me hizo sugerencias de que para hacerlo mas amigable lo hiciera con 2 pelotas etc.
Asi que lo estoy editando, y cree una pelota q se fija en la derecha y otra que se fija en la izquierda, pero con un solo objeto
O sea aca si me aparecieran 2 pelotas iguales, por ejemplo 0 y 0, mostraria a la bola 0 en la izquierda x= -20 y su clon en la derecha x= 20
EL problema es que despues cuando quiero borrar el clon, no me lo borra


Cual es el error?, no lo entiendo

http://scratch.mit.edu/projects/11390716/#editor

Saludos!
camilomodelado
New to Scratch
5 posts

Problema con random en lista y posiciones de pelotas.

al final pude arreglar el error que mencione en el mensaje anterior, pero me surge otro.
Quiero crear una especie de botones a la orilla inferior izquierda de todos numero del 1 al 18, pero que estos botones sean clones de los objetos pelotas.

El gran problema es que por ejemplo para la bola 0, esta bola se muestra en una posicion x, y su clon se muestra en otra posicion.
ok hay una bola y su clon, pero ahora quiero crear otro clon para hacerlo de boton, por ejemplo al presionar en ese objeto (ese clon), muestre tal cosa.
El problema es que cuando le coloco crear clon, automaticamente se me va a la funcion cuando comienze como clon, y en esa funcion tengo fijado parametros para el primero clon que cree, y no para el de boton.
Entonces eso produce que cuando muestro el boton clon, tambien muestre el clon de arriba
Como puedo crear varios clones de un objeto que fucnionen y se muestren por separado?

Saludo y gracias!!
valekris2
Scratcher
73 posts

Problema con random en lista y posiciones de pelotas.

hola
como están todos pero una cosa digo mis proyectos son buenos y mis comentarios no si puedo pedir ayuda
me ayudarían métanse en mi perfil valekris2
los quiero y los espero !!!!

(te gusto me gustas te amo me amas te pienso me ignoras)
valekris2
Scratcher
73 posts

Problema con random en lista y posiciones de pelotas.

hola el del juego ya lo arregle ya lo subi
eee buena suerte

(te gusto me gustas te amo me amas te pienso me ignoras)

Powered by DjangoBB