|
71
|
Programación / Programación General / Generar funciones.
|
en: 30 Diciembre 2024, 06:30 am
|
Al parecer todas las dudas relacionadas con quitar caracteres requieren 3 variables mínimo, yo quería sólo 2, así que voy a por operaciones comúnes donde parece que sí pueden ser 2.
El programa intentaría resolver una duda variable, algo así: Definir Constante. Seleccionar al azar cómo se aplicará el Candidato. Definirlo. Aplicarlo. Variarlo hasa que Constante < Resultado.
Quiero ayuda con lo de seleccionar. El paso de aplicar el candidato sería llamar a una función especificada por el paso de seleccionar. Seleccionarla es fácil. Llamar a una función variable no es el problema. Es que son muchas posibles aplicaciones, o funciones, por ejemplo: Aplicacion0 () { Resultado = Candidato; } Aplicacion1 () { Resultado = Candidato+Constante; } Aplicacion2 () { Resultado = Candidato+Candidato; } Aplicacion3 () { Resultado = Candidato-Constante; } etc
O sea, el programa intentaría resolver una duda al azar, dependiendo de qué función elija al principio, por ejemplo si elige la 2 es: ¿Qué valor conviene darle a Candidato para que Constante < Candidato+Candidato? Pero la condición en el código sería Constante < Resultado, en eso se guardaría el resultado de las operaciones que hagan falta.
Así pues, necesito generar una lista de funciones o aplicaciones. En la definición de Resultado pueden usarse sólo las 2 variables mencionadas. Y operaciones matemáticas comúnes. Y paréntesis. 3 operaciones máximo.
Bueno, supongo que es algo como: Aplicacion = 0 Repetir: Mostrar en pantalla "Aplicacion"+Aplicacion+" () {"+salto de línea+" Resultado = " ...es decir, falta una parte, que no sé, pero la idea es que un programa genere esas funciones, las muestre, yo las copio y las pego en el programa que quiero hacer, o sea, el generador es como un subprograma, un medio.
Hay que variar lo que viene luego de "= ".
¿Ideas?
No tengo puntos para GPTear, cuando pueda lo hago.
|
|
|
72
|
Informática / Software / ¿Qué son los archivos ~$algo.xlsx o docx?
|
en: 30 Diciembre 2024, 05:11 am
|
Entiendo que son como trozos de recuperación de otros archivos, modificaciones que no fueron guardadas ¿alguien me confirma o me da más info?
Intento eliminar archivos repetidos y no sé bien qué hacer con estos, al no saber bien qué son.
|
|
|
73
|
Programación / Programación General / Evitar o corregir entrada de valores inaplicables.
|
en: 28 Diciembre 2024, 14:38 pm
|
Tengo deshabilitado que se pueda editar los colores escribiendo en sus cuadros de texto:  porque si lo habilito tendría que hacer lo que menciono en el título, y por ahora no quería. De hecho mejor sigo con otra cosa más importante, pero por curiosidad, supongamos que escribo algo inaplicable, algo que no sea un color tal como el programa lo entiende ¿luego qué? Creo que en MF5 no existe un corrector automático mientras uno escribe ¿debería poner una función correctora, antes de que se generen las imágenes? Se generan al principio y cuando se presiona algún botón. Supongo que es lo más sencillo. Lo que vi en el tutorial es que tienen un botón de "aplicar", o sea, se ingresa el valor, y luego se aplica con el botón, que se podría programar que se active con Enter también. Pero en el tutorial es un cuadro de texto y un botón, acá como que ya no me queda espacio para poner eso xP (abajo irían unas flechitas para cambiar las opciones, pero el botón en cuestión debería verse con estas) Además en este caso deberían ser 10 botones o uno que revise si cada texto está bien. Otra posibilidad es que cliquear el texto agregue una ventana donde se pueda editar, esté el botón de "Modificar" y si el valor ingresado está mal entonces avisa que no se modificó, debido a eso. ¿Qué recomiendan? ¿Y cuales son los riesgos de Flash? GPT me dijo que se podía poner eval algo en los cuadros de texto, quizá leí mal, porque no le presté mucha atención a eso en ese momento.
|
|
|
74
|
Informática / Software / Programa para ordenar archivos, Windows 7 "cierra" el buscador al abrir la carpeta contenedora.
|
en: 28 Diciembre 2024, 10:52 am
|
Busco *.* en el desorden.
Ordeno por fecha, aunque en general ya está así.
Encuentro un archivo de 2013, por ejemplo.
Abro la carpeta contenedora, a ver qué hago con él (los swf/exe pueden ser posteriores a lo que realmente importa).
La abre en la misma ventana, la búsqueda ya no se ve.
El archivo, lo muevo o borro. La carpeta puede que también.
Pongo atrás para volver al buscador. No lo hace, pone un cartel de que no existe la carpeta o no sé qué.
Repito el proceso. Quisiera algo más eficiente. Algo que abra la carpeta en otra ventana, de modo que pueda regresar a la búsqueda sin problema. Actualizada, en lo posible. Sé que al ver el archivo puedo abrir sus propiedades, copiar su ubicación, pegarla en otra ventana y hacer la tarea ahí, de moverlo o borrarlo, pero tampoco es tan eficiente.
Supongo que es cuestión de no borrar la carpeta, pero igual es una chorrada que no abra la carpeta en otra ventana. ¿Algún programa que ayude más?
|
|
|
75
|
Seguridad Informática / Hacking / Descartar combinaciones de caracteres al buscar password.
|
en: 27 Diciembre 2024, 19:48 pm
|
No sé si iría en la sección de Hacking o no, sorry.
El password que busco quizá tenía más de una palabra junta. Es mío, pero recuerdo muy poco de él. Aprendí a generar passwords evitando que tengan 3 caracteres iguales o más, obviando si son mayúsculas (el mío creo que era con mayúscula inicial, o todo con mayúsculas/minúsculas). Creo que es buena idea, ya que por más que haya palabras juntas, es muy difícil que tenga aaa por ejemplo, debería ser una palabra que termine con 2 a y empiece con otra, o al revés, o que termine en a, siga una "a" (como "baja a") y luego venga otra palabra con a.
Quisiera evitar más combinaciones teniendo en cuenta eso. Hace tiempo estuve averiguando cuales no ocurren, o muy rara vez, en español e inglés, pero no me di cuenta de que podía haber 2 palabras juntas. Con eso, descartaría hh, ññ, quizá hñ y ñh, en fin, debe haber muchas ¿pero cuales, cómo las averiguo, GPT? Me dió una idea pero ¿uds saben una lista así o algo así que me puedan dar?
|
|
|
77
|
Foros Generales / Foro Libre / ¿Qué pasa con el foro 3DJuegos?
|
en: 21 Diciembre 2024, 07:45 am
|
 Los datos que debía poner los puse. Ese mensaje me apareció siempre que intenté registrarme, y fue en distintos momentos durante mucho tiempo. Envié un mensaje, según recuerdo, a uno o 2 de los emails de contacto pero no hubo respuesta o no la vi. ¿Alguien podría intentar registrarse a ver si le pasa lo mismo? Y sino, que informen que me quiero registrar y me ponen ese mensaje, que no hagan perder el tiempo y paciencia, siempre que busco un foro me sale ese, no lo tengo tan memorizado, y aparece el error. Además, si da error ¿por qué Google lo muestra 1ero?
|
|
|
78
|
Media / Juegos y Consolas / Idear un juego muy simple (es complicado).
|
en: 21 Diciembre 2024, 07:13 am
|
Inventa un juego (sólo uno) que tenga estas características: El personaje: - Se ve de perfil. - Sólo puede avanzar a la derecha o detenerse, significa que no se puede agachar, ni saltar, ni girar, ni retroceder, ni activar un escudo, ni disparar, ni hacerse intangible, ni hablar, etc. - Su apariencia (sprite, dibujo) no cambia. Los enemigos u objetos peligrosos: - Se ven de perfil. - Aparecen desde la izquierda y avanzan hacia la derecha, sin parar. Nada más, no disparan, no se elevan, no giran, no hablan, etc. - Su apariencia (sprite, dibujo) no cambia. Victoria: Cuando el personaje llega al extremo derecho de la pantalla. Derrota: Cuando el personaje es tocado mientras avanza (si está quieto no hay derrota, debes inventar una justificación para esto). ### Juego: **"La Marcha del Mensajero"**
**Descripción del juego:** En un mundo desolado, el último mensajero de un reino en ruinas debe llevar un pergamino crucial al otro extremo de una vasta llanura. El mensajero, siempre caminando hacia el horizonte, no puede detenerse por completo, pero tiene un extraño poder: si se queda quieto en el momento exacto, los enemigos lo ignoran por completo, como si no pudieran verlo. Sin embargo, si se mueve mientras lo tocan, su misión fracasará.
---
### Mecánicas del juego:
1. **Movimiento del personaje**: - El jugador puede **avanzar** hacia la derecha presionando una tecla (por ejemplo, la flecha derecha). - El jugador puede **detenerse** soltando la tecla, pero no puede retroceder ni realizar ninguna otra acción.
2. **Enemigos**: - Los enemigos son criaturas sombrías que aparecen desde el lado izquierdo de la pantalla y se mueven constantemente hacia la derecha, siguiendo trayectorias directas. - Si un enemigo toca al personaje mientras este está en movimiento, el jugador pierde. - Si el personaje está completamente detenido, los enemigos simplemente pasan de largo, como si no lo vieran.
3. **Victoria y derrota**: - **Victoria**: El mensajero llega al extremo derecho de la pantalla, completando su misión. - **Derrota**: El personaje es tocado por un enemigo mientras está en movimiento.
4. **Justificación de la mecánica de derrota**: El mensajero lleva un pergamino mágico que emite un brillo mientras está en movimiento, lo que atrae a las criaturas sombrías. Sin embargo, si se detiene por completo, el pergamino deja de brillar, volviéndose invisible para los enemigos.
---
### Elementos visuales y diseño:
1. **El personaje**: - Un sprite sencillo de perfil que representa al mensajero, vestido con una túnica y cargando un pergamino. Su animación es estática, sin cambios, incluso al moverse.
2. **Enemigos**: - Criaturas de sombra de perfil, con formas indefinidas y terroríficas. Se mueven constantemente desde la izquierda hacia la derecha.
3. **Entorno**: - Un fondo minimalista que representa una llanura desierta. El paisaje no cambia.
---
### Dinámica del juego:
El jugador debe calcular cuidadosamente cuándo avanzar y cuándo detenerse. Al detenerse, los enemigos pasan de largo, pero si el jugador se queda detenido demasiado tiempo, el ritmo del juego se vuelve más difícil porque los enemigos se acumulan, dejando menos tiempo para avanzar entre ellos. La clave es encontrar el momento exacto para avanzar sin ser tocado.
---
**Ejemplo de escenario en el juego:** - Un enemigo aparece por la izquierda y se acerca lentamente. - El jugador, avanzando, se detiene justo antes de que el enemigo lo alcance. - El enemigo pasa de largo, y el jugador aprovecha para avanzar un poco más antes de que llegue el próximo enemigo.
**Dificultad progresiva:** - A medida que pasa el tiempo, los enemigos aparecen con mayor frecuencia y velocidad, obligando al jugador a reaccionar más rápido.
---
### Nombre del juego: **"La Marcha del Mensajero"**
Este juego pone a prueba la paciencia, los reflejos y la capacidad de tomar decisiones rápidas del jugador. ¡Solo los más precisos podrán completar la misión y salvar el reino! ¿Podría ser uno que no requiera dar explicación al jugador? Una situación en que sea evidente por qué debe quedarse quieto. Lo más parecido que se me ocurre es que hay robots que captan el movimiento, solo el movimiento. Sobre eso su respuesta fue desarrollar esa idea, pero esa idea no sirve, quise decir. En cuanto a esto que puse al inicio "(sólo uno)", es porque ya había intentado esto, me dijo varios, le intenté decir sus fallas, y me aparecía un mensaje de que se necesitaban más puntos de los que puedo enviar por mensaje, y al parecer no era que se me hayan acabado los puntos del día.
|
|
|
79
|
Programación / Programación General / De una cadena, quitar la subcadena especificada, tantas veces como se repita.
|
en: 20 Diciembre 2024, 05:52 am
|
Por ejemplo de la cadena "121213121", quitar toda subcadena "121". No es un ejemplo cualquiera, intento mostrar que hay 2 interpretaciones: A: Quitamos el 1er 121: 121213121 Siguiente: 213 121Resultado final: 213 B: Debemos quitar: esto: 121213121 y esto: 12 1213 121O sea: 121213 121Resultado final: 3 Hice algo parecido a esto, sólo sirve si la subcadena tiene 1 solo caracter (y en tal caso no hay ambiguedad): Cadena = "121213121"; CaracteraQuitar = "1"; // Cadena a la que se agregarán los caracteres que no deban quitarse: NuevaCadena = ""; PunteroDeCaracteres = -1; do { PunteroDeCaracteres++; CaracterSeñalado = Cadena.charat(PunteroDeCaracteres); // Si el caracter señalado no es como CaracteraQuitar: if (CaracterSeñalado != CaracteraQuitar) { // Agregarlo a NuevaCadena: NuevaCadena = NuevaCadena+CaracterSeñalado; } } while (PunteroDeCaracteres<Cadena.length); trace(NuevaCadena);
Intenté que elimine subcadenas de cualquier extensión, usando un método que me enseñaron, pero me tranqué: Cadena = "121213121"; CaracteraQuitar = "121"; // Ver si el CaracteraQuitar está en Cadena: // Esto es porque en este lenguaje... // no se puede quitar un caracter de modo simple: // De Cadena se quitará... // cada presencia del CaracteraQuitar: NuevaCadena = Cadena; do { SeQuitoCaracter = "No"; SaveDeNuevaCadena = NuevaCadena; // Obtener la cadena anterior a la presencia... // del CaracteraQuitar, si es que él está presente // (queda un array, join("") es para que se... // transforme en un string sin separaciones): NuevaCadena = NuevaCadena.split(CaracteraQuitar).join(""); // Obtener el resto de la cadena:
¿Se puede hacer A con este método o no? ¿y B? Acabo de probarlo sin el do y al parecer sólo funciona si CaracteraQuitar es 1 caracter. El nombre debería ser SubcadenaaQuitar, pero es otro tema. ¿Debería intentarlo ajustando mi 1er código o hay una manera mejor?
|
|
|
80
|
Programación / Programación General / Correcta y rápida evitación de dibujos sin pintados en alguna fila y columna.
|
en: 16 Diciembre 2024, 19:00 pm
|
Se quiere, entre otras cosas, que los dibujos generados en blanco y negro tengan algún cuadradito pintado (negro) en cada fila y columna. El 1ero es así: BBN BNB NBB Va pintando y despintando, desde abajo a la izquierda. En cierto punto, queda así: BBN BNN BBB Ese no debe mostrarse. El programa continuará pintando y despintando, hasta hallar un dibujo que cumpla las condiciones. Pero puede verse que, por el orden conque pinta, se generarán varios dibujos que no servirán. Para evitar eso, puse en el código, que mire cada columna y fila, comenzando desde la izquierda y abajo, y, bueno, esto: } else if (SinPintadosEn == "Columna") { // El puntero se pone en la columna indicada, // de la última fila: Puntero = CuadraditosPorFila*(CuadraditosPorFila-1)+Puntero2; } else if (SinPintadosEn == "Fila") { // El puntero se pone en la fila indicada, // de la última columna: Puntero = CuadraditosPorFila*Puntero2;
Si se detecta una columna sin pintados, enseguida el programa hace eso, pintará un cuadradito inferior, en la columna donde haga falta. El Puntero indica cual se pintará. Si en cambio detecta una fila sin pintados, también enseguida pintará uno, a la derecha, en la fila donde haga falta. Pensé que eso era bueno, pero hace que algunos dibujos correctos no se muestren, la versión antigua del programa está en la izquierda: https://youtu.be/iZuwk7YcGawQuizá la solución sea, en vez de pintar enseguida al detectar una falla, terminar de revisar cada fila y columna, y si se detecta una falla en ambos casos entonces pintar el cuadradito que solucione ambas. Pero no estoy seguro de que funcione bien, a estas alturas. Además, cuando sólo falle en 1 aspecto, estará revisando medio en vano, quizá sea mejor producir los dibujos normalmente y no mostrarlos si no cumplen las condiciones. Lo que estoy intentando es evitar que se produzcan innecesarios, pero si requiere análisis "innecesarios", no sé si es mejor. ¿Sugerencias? Código en cuestión: // Para juzgar: // ¿El dibujo tiene cuadraditos pintados en toda columna y fila? Puntero2 = CuadraditosPorFila; // Esto puede que cambie: CuadraditoenCadaFyC = "Sí"; do { // ¿La columna Puntero2 no tiene algún cuadradito pintado? if (eval("PintadosenC"+Puntero2)<1) { CuadraditoenCadaFyC = "No"; // Para saber qué corregir: SinPintadosEn = "Columna"; } else if (eval("PintadosenF"+Puntero2)<1) { // La fila Puntero2 no tiene algún cuadradito pintado: CuadraditoenCadaFyC = "No"; SinPintadosEn = "Fila"; } else { Puntero2--; } } while (CuadraditoenCadaFyC == "Sí" && Puntero2>0); // ¿El dibujo tiene cuadraditos pintados en toda columna y fila? if (CuadraditoenCadaFyC == "No") { // No, no mostrarlo y hacer otro: // trace (" No ocupa cada F y C, salteándolo."); DibujosPequeños++; // Actualizar MinCuadraditoPintado si corresponde: if (Puntero<MinCuadraditoPintado) { // Esto no viene al caso. } else if (SinPintadosEn == "Columna") { // El puntero se pone en la columna indicada, // de la última fila: Puntero = CuadraditosPorFila*(CuadraditosPorFila-1)+Puntero2; } else if (SinPintadosEn == "Fila") { // Probablemente es innecesario poner la condición // El puntero se pone en la fila indicada, // de la última columna: Puntero = CuadraditosPorFila*Puntero2; } else { // Probablemente es innecesario poner este else y su contenido // El puntero se pone en el cuadradito inferior derecho: Puntero = MaxPosiciondePuntero; trace("Caso que no debería ocurrir"); }
|
|
|
|
|
|
|