Este blog lo hice para dedicarme a añadir contenido en él que no cuadran en mis otros blogs y en mi Twitter. Este blog será diferente a mi otro blog JAGMGeorgyFantastico y mi twitter JAGMGeorgy, porque añadiré realmente cualquier cosa que me venga a la mente, que conozca y/o quiera compartir sin estar obligado a educar una sola cosa en cada publicación. A su vez, hay un tema en elforonuevo.com donde podrán ver casi las mismas publicaciones, ya que así podré también tener mi propio hilo en esos foros. Espero que les guste este blog. Les aviso si, que si quieren ver más de las publicaciones que hice en este blog, tienen que pulsar abajo el texto que dice "Entradas antiguas."

miércoles, 18 de diciembre de 2024

Probando por primera vez Claude


Claude es un sitio web donde puedes pedir y crear con inteligencia artificial scripts.


El link de Claude es https://claude.ai


Les muestro las 2 cosas que le pedí a este sitio web por primera vez, para ver si funcionaba y cómo funcionaba.


1) Un juego RPG:


Esto fue lo primero que le pedí a Claude, es un juego RPG. Este juego lo hice porque la forma más sencilla de crear un videojuego en script era un juego RPG hecha de solo texto. Consiste en que el jugador tiene habilidades e items y debe vencer a un enemigo. Más que eso no es, porque debía ser muy sencillo para ver si funcionaba y cómo.


Este es el script de este juego RPG:


import random


class Jugador:

    def __init__(self):

        self.vida = 100

        self.espada_usos = 10

        self.items = {

            "pocion_vida": 1,

            "bandera_blanca": 1

        }

        self.cubrirse_contador = 0

        self.proyectil_guardado = None


    def mostrar_estado(self):

        print(f"\n--- Estado del Jugador ---")

        print(f"Vida: {self.vida}")

        print(f"Usos de espada restantes: {self.espada_usos}")

        print(f"Pociones de vida: {self.items['pocion_vida']}")


    def seleccionar_accion(self):

        while True:

            print("\nSelecciona tu acción:")

            print("1. Golpear con las manos")

            print("2. Golpear con espada")

            print("3. Cubrirse")

            print("4. Guardar proyectil")

            

            if self.items["pocion_vida"] > 0:

                print("5. Usar poción de vida")

            

            if self.items["bandera_blanca"] > 0:

                print("6. Rendirse")

            

            accion = input("Elige un número (1-6): ")

            

            if accion == "1":

                return "golpe_manos"

            elif accion == "2" and self.espada_usos > 0:

                return "golpe_espada"

            elif accion == "3":

                return "cubrirse"

            elif accion == "4":

                return "guardar_proyectil"

            elif accion == "5" and self.items["pocion_vida"] > 0:

                return "pocion_vida"

            elif accion == "6" and self.items["bandera_blanca"] > 0:

                return "rendirse"

            else:

                print("Acción inválida. Intenta de nuevo.")


class Enemigo:

    def __init__(self):

        self.vida = 100


    def realizar_accion(self, jugador):

        acciones = ["golpe_normal", "proyectil"]

        accion = random.choice(acciones)

        

        if accion == "golpe_normal":

            daño = random.randint(10, 20)

            

            if jugador.cubrirse_contador > 0:

                daño //= 2

                jugador.cubrirse_contador -= 1

            

            jugador.vida -= daño

            print(f"\nEl enemigo te golpea causando {daño} de daño!")

        

        elif accion == "proyectil":

            if jugador.proyectil_guardado is None:

                daño = random.randint(15, 25)

                

                if jugador.cubrirse_contador > 0:

                    daño //= 2

                    jugador.cubrirse_contador -= 1

                

                jugador.vida -= daño

                print(f"\nEl enemigo te lanza un proyectil causando {daño} de daño!")

            else:

                jugador.proyectil_guardado = None

                print("\nTu proyectil guardado evita el ataque del enemigo.")


def juego_principal():

    print("Misión: Conseguir un limón dorado para salvar a tu abuela\n")

    jugador = Jugador()

    enemigo = Enemigo()


    while jugador.vida > 0 and enemigo.vida > 0:

        jugador.mostrar_estado()

        

        accion = jugador.seleccionar_accion()

        

        if accion == "golpe_manos":

            daño = random.randint(1, 5)

            enemigo.vida -= daño

            print(f"\nGolpeas al enemigo con las manos causando {daño} de daño.")

        

        elif accion == "golpe_espada":

            daño = random.randint(15, 25)

            enemigo.vida -= daño

            jugador.espada_usos -= 1

            print(f"\nGolpeas al enemigo con la espada causando {daño} de daño.")

        

        elif accion == "cubrirse":

            jugador.cubrirse_contador = 2

            print("\nTe cubres, preparándote para recibir menos daño.")

        

        elif accion == "guardar_proyectil":

            jugador.proyectil_guardado = True

            print("\nPrepárate para guardar el próximo proyectil del enemigo.")

        

        elif accion == "pocion_vida":

            jugador.vida = 100

            jugador.items["pocion_vida"] -= 1

            print("\n¡Usas la poción de vida y recuperas toda tu salud!")

        

        elif accion == "rendirse":

            print("\nTe rindes. No logras completar tu misión.")

            break


        print(f"\nVida del enemigo: {enemigo.vida}")

        

        if enemigo.vida <= 0:

            print("\n¡Has derrotado al enemigo! Logras sacar un limón dorado del árbol.")

            print("Se lo das a tu abuela como antídoto. Ella está feliz y sana. ¡Misión cumplida!")

            break

        

        enemigo.realizar_accion(jugador)

        

        if jugador.vida <= 0:

            print("\nCaes al suelo, tristemente derrotado. No lograste salvar a tu abuela.")


if __name__ == "__main__":

    juego_principal()


2) Juego del reloj:


La segunda cosa que le pedí a Claude para probarlo y ver cómo funcionaba, fue un juego de reloj. Este juego de reloj muestra la hora en un reloj, y menciona a qué hora debe llegar, que esta hora que se debe llegar se llama Misión de la Hora. Las únicas alternativas del jugador es sumarle a este reloj las horas y minutos para llegar a la hora que menciona la Misión de la Hora.


Este es su script:


import React, { useState, useEffect } from 'react';

import { Clock, Star, XCircle } from 'lucide-react';


const generateRandomTime = () => {

  const hours = Math.floor(Math.random() * 24);

  const minutes = Math.floor(Math.random() * 60);

  return { hours, minutes };

};


const formatTime = (time) => {

  return `${time.hours.toString().padStart(2, '0')}:${time.minutes.toString().padStart(2, '0')}`;

};


const addTime = (baseTime, addedHours, addedMinutes) => {

  let totalMinutes = baseTime.minutes + addedMinutes;

  let totalHours = baseTime.hours + addedHours + Math.floor(totalMinutes / 60);

  totalMinutes = totalMinutes % 60;

  totalHours = totalHours % 24;


  return { hours: totalHours, minutes: totalMinutes };

};


const ClockMissionGame = () => {

  const [initialTime, setInitialTime] = useState(generateRandomTime());

  const [missionTime, setMissionTime] = useState(generateRandomTime());

  const [addedHours, setAddedHours] = useState(0);

  const [addedMinutes, setAddedMinutes] = useState(0);

  const [gameStatus, setGameStatus] = useState('playing');

  const [score, setScore] = useState(0);


  const handleSubmit = () => {

    const resultTime = addTime(initialTime, addedHours, addedMinutes);

    

    if (resultTime.hours === missionTime.hours && resultTime.minutes === missionTime.minutes) {

      setGameStatus('won');

      setScore(prevScore => prevScore + 100);

    } else {

      setGameStatus('lost');

    }

  };


  const resetGame = () => {

    setInitialTime(generateRandomTime());

    setMissionTime(generateRandomTime());

    setAddedHours(0);

    setAddedMinutes(0);

    setGameStatus('playing');

  };


  return (

    <div className="p-6 bg-gray-100 min-h-screen flex items-center justify-center">

      <div className="bg-white p-8 rounded-lg shadow-lg text-center">

        <h1 className="text-2xl font-bold mb-4">Juego de Misión del Reloj</h1>

        

        {gameStatus === 'playing' && (

          <>

            <div className="flex justify-center items-center space-x-4 mb-6">

              <Clock size={48} className="text-blue-600" />

              <span className="text-4xl font-mono">{formatTime(initialTime)}</span>

            </div>


            <div className="mb-4">

              <h2 className="text-lg mb-2">Misión de la Hora:</h2>

              <p className="text-2xl font-bold text-green-600">{formatTime(missionTime)}</p>

            </div>


            <div className="flex justify-center space-x-4 mb-4">

              <div>

                <label>Horas a sumar</label>

                <input 

                  type="number" 

                  value={addedHours}

                  onChange={(e) => setAddedHours(Number(e.target.value))}

                  min="0" 

                  className="w-20 p-2 border rounded"

                />

              </div>

              <div>

                <label>Minutos a sumar</label>

                <input 

                  type="number" 

                  value={addedMinutes}

                  onChange={(e) => setAddedMinutes(Number(e.target.value))}

                  min="0" 

                  className="w-20 p-2 border rounded"

                />

              </div>

            </div>


            <button 

              onClick={handleSubmit}

              className="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600"

            >

              Verificar

            </button>

          </>

        )}


        {gameStatus === 'won' && (

          <div className="text-center">

            <Star size={64} className="text-yellow-500 mx-auto mb-4" />

            <h2 className="text-2xl font-bold text-green-600 mb-4">¡Ganaste!</h2>

            <p className="text-xl mb-4">Puntuación: {score}</p>

            <button 

              onClick={resetGame}

              className="bg-green-500 text-white px-4 py-2 rounded hover:bg-green-600"

            >

              Jugar de Nuevo

            </button>

          </div>

        )}


        {gameStatus === 'lost' && (

          <div className="text-center">

            <XCircle size={64} className="text-red-500 mx-auto mb-4" />

            <h2 className="text-2xl font-bold text-red-600 mb-4">¡Perdiste!</h2>

            <p className="text-xl mb-4">Puntuación: {score}</p>

            <button 

              onClick={resetGame}

              className="bg-red-500 text-white px-4 py-2 rounded hover:bg-red-600"

            >

              Intentar de Nuevo

            </button>

          </div>

        )}

      </div>

    </div>

  );

};


export default ClockMissionGame;


En caso de que estos códigos no estén bien anotados en esta publicación, les doy 2 links de estos códigos donde de seguro estarán mejor anotados:


1) El juego RPG:

https://docs.google.com/document/d/1dKkW4HkRzXK9ZqNalSJQ5Ddm0EZE9dFJOguP6dhRgtM/edit?usp=sharing


2) El juego del reloj:

https://docs.google.com/document/d/1BodCp_C0HxmbNin0vwnD3w-jVLay0A5RA9THkn4DKeM/edit?usp=sharing

No hay comentarios.:

Publicar un comentario

Canción Fan club de videojuego Rhythm Heaven igual en videojuego y en concierto

Hoy día quería compartirles algo interesante que solo publiqué antes en foros de internet, estos son dos videos acerca de una canción de vid...