elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Activar evento con tecla y luego, si se suelta y vuelve a presionar, activar otro.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Activar evento con tecla y luego, si se suelta y vuelve a presionar, activar otro.  (Leído 3,650 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.213


Superhacker (es broma xD )


Ver Perfil
Activar evento con tecla y luego, si se suelta y vuelve a presionar, activar otro.
« en: 16 Noviembre 2022, 03:44 am »

Lo que quiero hacer:

Un jugador de tenis que va a hacer un saque puede moverse hacia los costados y lanzar la pelota hacia arriba, con la tecla A.

Una vez lanzada, la pelota sube cada vez más lento, y luego baja cada vez más rápido, hasta que vuelve a la mano del jugador y se regresa a la etapa anterior. Pero si mientras la pelota está en el aire se presiona de nuevo la tecla, se realiza el saque.


Los problemas que me surgen:

1- Se presiona A, se eleva la pelota, el programa asume erróneamente que A se presionó de nuevo, y el saque es realizado instantáneamente, sin que el jugador pueda golpear la bola cuando está bien alta o en otra momento.
Esto sucede porque el code que uso tiene "si se presionó A elevar bola" y luego "si bola está en el aire y se presiona A realizar el saque", es decir, se presiona A e instantáneamente se chequea si se volvió a presionar, lo cual resulta siempre en sí.

2- Si mientras la bola cae se mantiene presionado A entonces instantáneamente se vuelve a elevar. No quiero eso. Quiero que se vuelva a elevar solo si se soltó la tecla y se volvió a presionar.

Intenté resolver esos problemas pero me surgieron otros.


Lo que tengo:
Código
  1. // Esto no tiene relevancia en el problema, lo pongo por poner el code completo.
  2. fscommand ("fullscreen", "true");
  3. AlexFuerzadepiernas = 10000;
  4. Alexwalkspeed = AlexFuerzadepiernas/10000;
  5. Alexwalkspeedonserving = AlexFuerzadepiernas/1000;
  6. AlexMinXposonserving = 408+Alexwalkspeedonserving;
  7. AlexMaxXposonserving = 512-Alexwalkspeedonserving;
  8. AlexX = 460;
  9. Teclafuesoltada = 0;
  10. // Eso sí es relevante, 0 es "no" y 1 es "sí".
  11. // ///////////////////////////////////////////////////////
  12. // ///////////////////////  Alex  ////////////////////////
  13. // ///////////////////////////////////////////////////////
  14. function Alexmovetoserve () {
  15.    if (Teclafuesoltada == 0) {
  16.        // Se asume que el jugador elevó la pelota y no soltó la tecla, o que quizá empezó el juego con la tecla presionada.
  17.        // Hasta que no se captre que no está presionada no podrá elevar la pelota.
  18.        // Es para evitar que en caso de mantener la tecla presionada se eleve la pelota a penas vuelva a la mano.
  19.        if (Key.isDown(65)) {
  20.        } else {
  21.            Teclafuesoltada = 1;
  22.            trace ("tecla se asume soltada durante move");
  23.            // Los trace son mensajes que hago aparecer en pantalla intentando descubrir qué error hay.
  24.            // Ahora al presionar la tecla de nuevo Alex elevará la pelota.
  25.        }
  26.    } else if (Key.isDown(65)) {
  27.        // Tecla A, lanza pelota hacia arriba.
  28.        Funcencurso = "Alexelevandoball";
  29.        // Función en curso, una idea que tuve para entender mejor cómo está el programa, pero no me sirvió por ahora.
  30.        trace ("inicia Alexelevandoball");
  31.        Teclafuesoltada = 0;
  32.        // Velocidad de subida y altura (todo al revés).
  33.        BallZSpeed = -0.75;
  34.        BallZ = -40;
  35.        Alex.gotoAndStop(2);
  36.        // Eso es para cambiar la pose del personaje, irrelevante en el problema.
  37.        gotoAndPlay (4);
  38.        // Esto es enredado de explicar, pero tampoco creo que sea relevante.
  39.    } else if (Key.isDown(37)) {
  40.        // Se mueve a la izquierda, si no se sale del límite.
  41.        if (AlexX>AlexMinXposonserving) {
  42.            AlexX = AlexX-Alexwalkspeedonserving;
  43.        } else {
  44.            AlexX = AlexMinXposonserving-Alexwalkspeedonserving;
  45.        }
  46.        setProperty (Alex, _x, AlexX);
  47.    } else if (Key.isDown(39)) {
  48.        // Se mueve a la derecha, si no se sale del límite.
  49.        if (AlexX<AlexMaxXposonserving) {
  50.            AlexX = AlexX+Alexwalkspeedonserving;
  51.        } else {
  52.            AlexX = AlexMaxXposonserving+Alexwalkspeedonserving;
  53.        }
  54.        setProperty (Alex, _x, AlexX);
  55.    }
  56. }
  57. //
  58. function Alexelevandoball () {
  59.    if (Teclafuesoltada == 0) {
  60.        trace ("tecla se asume presionada durante elevación");
  61.        // Aún no se soltó la tecla.
  62.        if (Key.isDown(65)) {
  63.            trace ("tecla se capta presionada durante elevación");
  64.        } else {
  65.            Teclafuesoltada = 1;
  66.            trace ("tecla soltada durante elevación");
  67.            // Ahora al presionarla de nuevo Alex saca.
  68.        }
  69.    } else {
  70.        if (Key.isDown(65)) {
  71.            // La tecla fue soltada y vuelta a presionar; Alex saca.
  72.            trace ("tecla se capta presionada durante elevación");
  73.            Alex.gotoAndStop(3);
  74.        }
  75.    }
  76.    // Disminuye la velocidad de subida y varía la altura.
  77.    BallZSpeed = BallZSpeed+0.01;
  78.    BallZ = BallZ+BallZSpeed;
  79.    setProperty (Alex.Ball, _y, BallZ);
  80.    // Varía el tamaño de la pelota.
  81.    BallZoom = 100+BallZ*-1;
  82.    setProperty (Alex.Ball, _xscale, BallZoom);
  83.    setProperty (Alex.Ball, _yscale, BallZoom);
  84.    trace ("ball se movió");
  85.    if (BallZ>=-40) {
  86.        // Si queda muy abajo (BallZ muy alto), vuelve al frame 1.
  87.        trace ("ball volvió a la mano");
  88.        Teclafuesoltada = 0;
  89.        Funcencurso = "Alexmovetoserve";
  90.        Alex.gotoAndStop(1);
  91.        gotoAndPlay (2);
  92.    }
  93. }
  94. // falta mostrar pelota elevándose, indicar dirección, y alex golpeando
  95. Funcencurso = "Alexmovetoserve";


Lo que obtengo:
- Aparece el mensaje
tecla se asume soltada durante move (está bien).
- El personaje se mueve correctamente.
- Al presionar A ocurre un error, aparecen estos mensajes:
inicia Alexelevandoball (está bien)
tecla se asume presionada durante elevación (está bien)
tecla se capta presionada durante elevación (está bien)
ball se movió (está bien)
tecla se asume soltada durante move ( :o)
- El personaje queda en la pose de elevando la bola (frame 2 de dicho objeto), pero ella no se eleva ni baja.
- El frame está en 2 o 3, y la función ejecutándose es la Alexmovetoserve (aunque como dije el personaje está en una pose que no debería en esta función).

Es decir, no entiendo qué pasa luego de "ball se movió".
Código:
trace ("ball se movió");
if (BallZ>=-40) {
// Si queda muy abajo (BallZ muy alto), vuelve al frame 1.
trace ("ball volvió a la mano");
Teclafuesoltada = 0;
Funcencurso = "Alexmovetoserve";
Alex.gotoAndStop(1);
gotoAndPlay (2);
}
Si ese if es true entonces debería aparecer el mensaje (trace) que dice ahí, cosa que no sucede así que asumo que es false. Acabo de probar crear una variable ahí y no la crea, esa parte del code no se ejecuta. Es más, si antes del if pongo trace de BallZ me da:
-40.74
está bien.

Bueno, pondré un trace al comienzo de la 2nda func a ver si se vuelve a ejecutar o qué onda.

Hecho, sólo se ejecuta 1 vez. Qué pasa luego, o por qué pasa, es un misterio



E D I T :

Simplifiqué el code dejando solo lo que puede causar el error, así:
Código:
Escena 1
   actions for fotograma 1
      function Alexmovetoserve () {
         trace ("inicia Hol");
         gotoAndStop (4);
      }
   actions for fotograma 2
      trace ("f2");
      Alexmovetoserve();
   actions for fotograma 3
      trace ("f3");
      Alexmovetoserve();
      gotoAndPlay (2);
   actions for fotograma 4
      trace ("f4");
   actions for fotograma 5
      trace ("f555555555555555555555555555555555555555");
      stop ();

Resultado:
f2
inicia Hol
f4

O sea, en el frame 2 ejecuta la función, va al frame 4, y se detiene ahí. Bien.

Ahora miren así:
Código:
Escena 1
   actions for fotograma 1
      Teclafuesoltada = 0;
      function Alexmovetoserve () {
         if (Teclafuesoltada == 0) {
            if (Key.isDown(65)) {
            } else {
               Teclafuesoltada = 1;
               trace ("tecl se asume soltada durante mov");
            }
         } else if (Key.isDown(65)) {
            trace ("inicia Hol");
            Teclafuesoltada = 0;
            gotoAndStop (4);
            // ese sto no funciona.
         }
      }
   actions for fotograma 2
      trace ("f2");
      Alexmovetoserve();
   actions for fotograma 3
      trace ("f3");
      Alexmovetoserve();
      gotoAndPlay (2);
   actions for fotograma 4
      trace ("f4");
      stop ();
   actions for fotograma 5
      trace ("f555555555555555555555555555555555555555");
      stop ();

Resultado:
f2
tecl se asume soltada durante mov
f3
f2
f3
NOTA: f2 y f3 se repiten hasta presionar A.
inicia Hol
f4
f2

O sea, en el frame 3 ejecuta la función, va al frame 4, y vuelve al 2. Uno podría pensar que es lógico porque en el f3 hay una instrucción de que vuelva al 2, pero si ya fue al f4 y ejecutó algo de ahí entonces eso de que ejecute algo restante del f3... bueno, no me había dado cuenta de que podía ser lógico... PERO si en el f4 pongo un stop entonces va al f2 y se detiene ahí, como si la instrucción stop modificara la supuesta restante gotoAndPlay(2)...
ADEMÁS ¿Por qué en el 1er code la función siempre se ejecuta en el f2 y en el 2ndo en la f3?

Bueno... la solución a este raro problema puede ser poner un if en el f3 para que vuelva al f2 solo si la función que se quiere ejecutar sigue siendo la misma.

Nunca tuve un problema como este porque solía poner códigos en los objetos; es paradójico que lo haya tenido precisamente porque decidí empezar a poner todo lo posible en la película raíz pensando que sino se ejecutarían muchos codes a la vez o que sería medio impredecible... Sucedió que igual sucedió algo impredecible.

Otra cosa: Normalmente uno no pone que una función se ejecute y que en el siguiente frame se ejecute otra vez y vuelva al anterior, pero haciéndolo así parece que sucedieran cosas más rápido que de la forma más "normal" o simple (poner código en un objeto y que se ejecute en caso de "enter frame"), por eso lo hago así. ¿Quizá hace que se ejecuten 2 frames en el tiempo en que solo se debería ejecutar 1?

 :huh:


« Última modificación: 16 Noviembre 2022, 06:22 am por Tachikomaia » En línea

Username_Loading...

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Activar evento con tecla y luego, si se suelta y vuelve a presionar, activar otro.
« Respuesta #1 en: 10 Diciembre 2022, 17:41 pm »

La respuesta que recibes a continuación es generada por una inteligencia artificial, y es presentada aquí como curiosidad. Ten en cuenta que la información puede no ser del todo precisa y es recomendable verificarla o esperar a que alguien la confirme.

Según GPT-3:

Para lograr lo que quieres, deberías seguir los siguientes pasos:

Definir las variables necesarias para llevar el control del estado del juego. Por ejemplo, Teclafuesoltada para saber si se soltó o no la tecla A y Funcencurso para saber en qué momento del juego se encuentra.

Crear una función para cada uno de los momentos del juego. Por ejemplo, Alexmovetoserve para el primer momento, donde el usuario puede mover al personaje y elevar la pelota con la tecla A.

En cada función, agregar el código necesario para manejar las acciones del usuario y cambiar el estado del juego. Por ejemplo, en la función Alexmovetoserve se debería comprobar si se presionó o no la tecla A y, si es así, cambiar el valor de la variable Teclafuesoltada y llamar a la función Alexelevandoball para avanzar al siguiente momento.

En la función Alexelevandoball, se debería actualizar la posición de la pelota y verificar si se soltó o no la tecla A. Si se soltó, se debería cambiar el valor de la variable Teclafuesoltada y llamar a la función Alexserving, donde se manejará el movimiento de la pelota cuando está en el aire.

En la función Alexserving, se debería continuar actualizando la posición de la pelota y verificar si llegó a su altura máxima. Si es así, se debería cambiar el valor de Funcencurso para volver al primer momento del juego. Si la tecla A se presionó de nuevo mientras la pelota está en el aire, se debería llamar a la función Alexsmash para manejar el evento de sacar.

En la función Alexsmash, se debería cambiar la animación del personaje y actualizar la velocidad y posición de la pelota. Cuando la pelota llegue a su altura máxima, se debería volver a la función Alexserving para continuar el juego.

Aquí tienes un ejemplo de código que implementa lo que mencioné en mi respuesta anterior:

Código:
// Variables para llevar el control del juego
var Teclafuesoltada = 0;
var Funcencurso = "Alexmovetoserve";

// Función para el primer momento del juego
function Alexmovetoserve() {
  // Si la tecla A no se soltó o si se empezó el juego con la tecla presionada
  if (Teclafuesoltada == 0) {
    // Se comprueba si se presionó la tecla A
    if (Key.isDown(65)) {
      // Si se presionó, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
      Teclafuesoltada = 1;
      Funcencurso = "Alexelevandoball";
    }
  } else if (Key.isDown(65)) {
    // Si se soltó y volvió a presionar la tecla A, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
    Teclafuesoltada = 0;
    Funcencurso = "Alexelevandoball";
  }
  
  // Se maneja el movimiento del personaje con las teclas flechas
  if (Key.isDown(37)) {
    // Mover a la izquierda
  } else if (Key.isDown(39)) {
    // Mover a la derecha
  }
}

// Función para el segundo momento del juego
function Alexelevandoball() {
  // Si la tecla A no se soltó
  if (Teclafuesoltada == 0) {
    // Se comprueba si se presionó la tecla A
    if (Key.isDown(65)) {
      // Si se presionó, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
      Teclafuesoltada = 1;
      Funcencurso = "Alexserving";
    }
  } else if (Key.isDown(65)) {
    // Si se soltó y volvió a presionar la tecla A, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
    Teclafuesoltada = 0;
    Funcencurso = "Alexserving";
  }
  
  // Actualizar la posición y tamaño de la pelota
}

// Función para el tercer momento del juego
function Alexserving() {
  // Si la tecla A no se soltó
  if (Teclafuesoltada == 0) {
    // Se comprueba si se presionó la tecla A
    if (Key.isDown(65)) {
      // Si se presionó, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
      Teclafuesoltada = 1;
      Funcencurso = "Alexsmash";
    }
  } else if (Key.isDown(65)) {
    // Si se soltó y volvió a presionar la tecla A, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
    Teclafuesoltada = 0;
    Funcencurso = "Alexsmash";
  }
  
  // Actualizar la posición y tamaño de la pelota
  if (BallZ <= -40) {
    // Si la pelota llegó a su altura máxima, se vuelve al primer momento
    Teclafuesoltada = 0;
    Funcencurso = "Alexmovetoserve";
  }
}

Y aquí está la función Alexsmash:

Código:
// Función para el cuarto momento del juego
function Alexsmash() {
  // Si la tecla A no se soltó
  if (Teclafuesoltada == 0) {
    // Se comprueba si se presionó la tecla A
    if (Key.isDown(65)) {
      // Si se presionó, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
      Teclafuesoltada = 1;
      Funcencurso = "Alexserving";
    }
  } else if (Key.isDown(65)) {
    // Si se soltó y volvió a presionar la tecla A, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
    Teclafuesoltada = 0;
    Funcencurso = "Alexserving";
  }
  
  // Cambiar la animación del personaje
  Alex.gotoAndStop(3);
  
  // Actualizar la posición y tamaño de la pelota
  if (BallZ <= -40) {
    // Si la pelota llegó a su altura máxima, se vuelve al tercer momento
    Teclafuesoltada = 0;
    Funcencurso = "Alexserving";
  }
}


Finalmente, en el bucle principal del juego se debería llamar a la función correspondiente según el valor de la variable Funcencurso. Por ejemplo, en el bucle principal del juego podría incluirse el siguiente código:

Código:
while (true) {
  // Llamar a la función correspondiente según el valor de Funcencurso
  if (Funcencurso == "Alexmovetoserve") {
    Alexmovetoserve();
  } else if (Funcencurso == "Alexelevandoball") {
    Alexelevandoball();
  } else if (Funcencurso == "Alexserving") {
    Alexserving();
  } else if (Funcencurso == "Alexsmash") {
    Alexsmash();
  }
  
  // Actualizar el estado del juego y dibujar en pantalla
}

Espero que esto te ayude a implementar el comportamiento que quieres en tu juego. Si tienes alguna duda o necesitas más ayuda, no dudes en preguntar. ¡Buena suerte!


En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.213


Superhacker (es broma xD )


Ver Perfil
Re: Activar evento con tecla y luego, si se suelta y vuelve a presionar, activar otro.
« Respuesta #2 en: 11 Diciembre 2022, 00:29 am »

Cuando termine de poner en su sitio a los trozos de mi explotada cabeza, respondo.

¡Pajarito!  :o :o :o

Creo que comete algunos errores, pero se fue al carajo en cuanto a todo lo que entendió, o resumió. Incluso creó una 3era función que yo aquí no había nombrado, pero que yo sí cree ¡y le puso el mismo nombre que yo le puse! ¿cómo rayos puede haber pasado eso? ¿leyó otros posts que hice? ¿no es simplemente una IA sino que hay humanos que colaboran con ella?

¿Y cómo es posible que ella programe en el mismo lenguaje que yo? Si debo de ser el único que lo sigue usando. De Macromedia Flash 5. ¿Actionscript sigue usando los mismos símbolos de entonces? ¿¡y la IA esa sabe algo tan poco común como AS!?  :o

No tengo ganas de analizar y probar todo lo que dijo, además ya ni me acordaba de este error, ya no programo como dije aquí, ahora creo objetos en frames y ellos ejecutan las funciones, antes ocurría lo que mencioné de que una misma función podía ejecutarse 2 veces en 1 mismo frame, ahora no.

A ver...

CREO que esto
Código:
function Alexmovetoserve() {
  // Si la tecla A no se soltó o si se empezó el juego con la tecla presionada
  if (Teclafuesoltada == 0) {
    // Se comprueba si se presionó la tecla A
    if (Key.isDown(65)) {
      // Si se presionó, se cambia el valor de Teclafuesoltada y se pasa al siguiente momento
      Teclafuesoltada = 1;
      Funcencurso = "Alexelevandoball";
    }
está mal, porque es el caso en que la tecla no se soltó, y la IA está diciendo que en ese caso, si se presiona, entonces el personaje debería elevar la bola, lo cual no tiene sentido porque si se asume que no se soltó la tecla entonces se asume que se está presionando y entonces qué sentido tiene chequear si se está presionando o no... Se asume que sí.
Además yo no quiero que se eleve la bola cuando se asume que la tecla no fue soltada, porque sino, la bola se elevaría instantáneamente otra vez cuando cae en la mano del personaje. No me gusta eso, no se ve realista.
Oh, también veo que, al presionarse la tecla, la IA asume que la tecla fue soltada :xD Grave error.

El código que yo puse de la 1er función, quitando los comentarios, fue:
Código:
function Alexmovetoserve () {
    if (Teclafuesoltada == 0) {
        if (Key.isDown(65)) {
        } else {
            Teclafuesoltada = 1;
        }
    } else if (Key.isDown(65)) {
        Funcencurso = "Alexelevandoball";
        Teclafuesoltada = 0;

El de ella:
Código:
function Alexmovetoserve() {
  if (Teclafuesoltada == 0) {
    if (Key.isDown(65)) {
      Teclafuesoltada = 1;
      Funcencurso = "Alexelevandoball";
    }
  } else if (Key.isDown(65)) {
    Teclafuesoltada = 0;
    Funcencurso = "Alexelevandoball";
  }
Ella cambia el estado del juego en 2 casos (1: si la tecla no fue soltada y se presiona, o 2: si sí fue soltada y se presiona); en el 1ero no debería.

La IA continúa con:
Código:
if (Key.isDown(37)) {
    // Mover a la izquierda
  } else if (Key.isDown(39)) {
    // Mover a la derecha
  }
Tal vez no importe, pero parece un error, es decir, incluso cuando el personaje eleva la pelota él puede moverse a un lado, eso no debería ser así, cuando la eleva se queda quieto. Yo puse else ifs.

En la 2nda función parece una copia de la 1era, no sé para qué la hizo. Sí, en la 1era el personaje se puede mover y aquí se está moviendo la bola, pero no da la instrucción de que se vuelva a la etapa anterior si la bola vuelve a la mano del personaje.

La 3era función parece como la 2nda que hice. Se confundió en cuanto a qué significa "Si queda muy abajo (BallZ muy alto)",
ella puso "Si la pelota llegó a su altura máxima"
Obviamente, no es que el jugador vuelva a poder lanzar la pelota cuando esta llegó a la altura máxima, sino que es al revés, la puede volver a lanzar cuando bajó hasta su mano.+
Quizá está mal mi comentario de "muy alto", pues como BallZ es negativo y entre mayor sea el número más abajo estará en la pantalla, hasta yo me entrevero, pero creo que está bien: Si el número es muy alto la pelota está muy abajo.
Repito que me llama mucho la atención el nombre que le puso, porque yo mencioné esa palabra en algunas variables pero nada más, además yo luego de este post cree una función con ese mismo nombre... que hace otra cosa (básicamente golpear la bola y calcular su dirección), pero bue, qué casualidad... Gran casualidad.

La 4ta función parece un delirio total. En cierto punto dice que se pasa a la siguiente etapa pero lo que ella causa es que se vuelva a la anterior.
El nombre tiene que ver con tenis, es un golpe muy parecido al saque, y se puede entender como el momento de dar un golpe, pero puede que se haya confundido un poco, porque un smash no es lo mismo que un saque, y llamarle smash a un golpe que no es especificamente un smash puede causar confusiones.


Me enteré de una IA en español recientemente, que supuestamente programa más o menos, pero para usarla requiere decirle el nro de celular, que si tuviera no se lo doy ni en pedo, así que hazme este favor: Preguntale:
¿Cómo mejorar el universo?
Y publica en este tema la respuesta, o haz otro tema de eso.
Gracias.
En línea

Username_Loading...

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Activar evento con tecla y luego, si se suelta y vuelve a presionar, activar otro.
« Respuesta #3 en: 14 Diciembre 2022, 01:53 am »

Esta respuesta está escrita por una persona real xD:

Es cierto que aún tiene muchos fallos jaja además el input que le di estaba un poco confuso  :rolleyes: pero es alucinante lo que puede conseguir, puedes pedirle ayuda en casi cualquier cosa. Estoy seguro de que tu llegarías a mejores conclusiones si lo probases directamente. Eso si, no dejes que ella pilote todo el rato porque aún no es suficientemente avanzada como para hacer un código largo sin fallos, y también tienes el riesgo de que te de algún dato inventado totalmente camuflado.  :laugh:

Lo curioso es que puede hacer un código y corregirlo después (se corrige a si misma xD) así que en teoría sabe hacerlo bien, es solo que no sabemos como hacer que llegue ahí.

¿¿El numero de telefono?? Esto es ChatGPT, lo puedes usar de forma gratuita (de momento  :P) solo registrándote con tu correo. Te paso el enlace:

https://chat.openai.com

No lo había dejado antes porque pensé que aquí todos conocían el tema  :laugh: . Esta IA es GPT-3 pero ha sido condicionada para que crea que es un chatbot. Evita temas sensibles y tiene algo de censura por desgracia, pero merece mucho la pena probarla.
Viendo tu reacción vas a pasar un buen rato jugando con ella seguramente  :laugh:

En cuanto a tu pregunta... Está un poco capada en temas filosóficos (intenta ser muy neutral), así que seguramente su respuesta sea "Como solo soy una IA y no tengo acceso a internet, no tengo capacidad para conocer que cosas podrían mejorar el universo o Como podría hacerse bla bla bla" jaja pero nunca se sabe, lo mismo con el input adecuado... Lo mejor es que juegues tu con ella  ;-)


Edito
BUENO BUENO ME DIERON GANAS, esta fue su primera respuesta a tu pregunta tal como la has escrito:

Creo que es importante enfatizar que el universo es un concepto muy amplio y abarca todo lo que existe, incluyendo todos los planetas, estrellas, galaxias y otros cuerpos celestes, así como la materia y la energía que los conforman. Por lo tanto, mejorar el universo en su totalidad es una tarea titánica que probablemente esté fuera de nuestra capacidad como seres humanos. Sin embargo, eso no significa que no podamos hacer nuestra parte para mejorar nuestro pequeño rincón del universo, y hay muchas cosas que podemos hacer para lograrlo.


Maravilloso  ;-)
« Última modificación: 14 Diciembre 2022, 02:02 am por Username_Loading... » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Presionar Tecla en VB
Programación Visual Basic
KPOCH 2 5,218 Último mensaje 29 Enero 2006, 03:21 am
por sch3m4
Activar y desactivar Timer con 1 tecla
Programación General
BrokerJoker 5 10,163 Último mensaje 3 Enero 2012, 19:53 pm
por HdM
Fabricantes de routers solucionan un backdoor e incorporan otro para activar ...
Noticias
wolfbcn 2 1,837 Último mensaje 23 Abril 2014, 19:23 pm
por Vaagish
Codigo activar un timer con una tecla (F1, F2,F3,etc.)
Programación Visual Basic
Trigger S1Z4BL3 4 3,833 Último mensaje 18 Junio 2014, 18:27 pm
por 79137913
Activar Wireless sin tecla Fn en W7
Windows
Pintinta 3 3,013 Último mensaje 1 Septiembre 2014, 18:49 pm
por Songoku
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines