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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  "Programar" mediante estados ¿es muy limitante o el límite lo tengo yo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: "Programar" mediante estados ¿es muy limitante o el límite lo tengo yo?  (Leído 1,401 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
"Programar" mediante estados ¿es muy limitante o el límite lo tengo yo?
« en: 26 Febrero 2024, 15:37 pm »

Pensando la manera de jugar cierto juego (The Wizard's Castle, DOS, 1981) arriesgándose lo menos posible, y cómo describir eso, escribí esto:
Citar
Estado 1:
Posición: Fuera del castillo.
- Elige cualquier raza y sexo.
- Usa los puntos para maximizar DEX (18 creo), lo que sobre repartirlo equitativamente prefiriendo STR en caso de empate.
- Comprar espada y plate mail.

A partir de ahora:
Posición: En el castillo.

Definiciones:
Cofre S (seguro): No tiene un warp, sinkhole ni monstruo al lado.
Cofre P (peligroso): Tiene algo de eso al lado, pero no está completamente rodeado por esas cosas.
RWS: Completamente rodeado por warps/sinkholes (¿es posible?).
RM: Completamente rodeado por monstruos (¿es posible?).
R: Completamente rodeado por warps/sinkholes/monstruos.

Estado 2: Se cumple algo de esto:
   Tesoros S o P: Queda alguno sin adquirir.
   Cofres S: Queda alguno sin abrir.
   Grupos de oro tirado S o P: Queda alguno sin adquirir.
- Evita los sinkholes, warps y monstruos.
- Ignora el resto (no abras libros, no mires orbs, etc).
- Consigue eso que falte.
- Ve al siguiente piso usando escaleras. Si son R, usar un warp. Si no hay, ir a pisos anteriores buscando un warp.

Estado 3:
Tesoros S o P: Los tienes todos.
Cofres S: Idem.
Grupos de oro tirado S o P: Idem.
Se cumple algo de esto:
Está incompleto, claro, mi lío para empezar es con los pisos. Normalmente se diría:
Código:
Repetir
   Repetir
      Conseguir los ítems seguros del piso actual
      Ir al siguiente piso
   Mientras piso actual <= 8
Mientras te falten ítems seguros
¿No?

¿Es posible dar esas instrucciones usando estados como puse antes, cómo, o no?

Estado 2: Te faltan ítems seguros y aún no has revisado todos los pisos.
La 2nda parte de eso es redundante, si te faltan no has revisado, pero de algún modo debo decir que debe irse a otros pisos cuando se tengan los ítems S del actual.

Lo reintento:

Estado 2: Te faltan ítems seguros (y aún no has revisado todos los pisos).

m, retry:

Estado 2: Te faltan ítems seguros del piso actual:
- Agarrarlos y luego ir al siguiente piso.

Estado 3: Has recorrido todos los pisos (ergo deberías tener todos los ítems S):

m, retry:

Estado 2: No has recorrido todos los pisos (ergo te faltan ítems S) y te faltan ítems seguros del piso actual:
- Agarrarlos e ir al siguiente piso.

Listo.

Es decir, parece que algo como:
Código:
Repetir
   Repetir
   Condición 1
Condición 2
Se convertiría en:
No me doy cuenta, puse cosas distintas.

Tenía:
Código:
Repetir
   Repetir
      Conseguir los ítems seguros del piso actual
      Ir al siguiente piso
   Mientras piso actual <= 8
Mientras te falten ítems seguros
Y se convierte en:
Estado 2: No has recorrido todos los pisos (ergo te faltan ítems S) y te faltan ítems seguros del piso actual:

¿Cual es la lógica, si es que la hay, tiene que ver una cosa suficiente con la otra o...?

A ver algo más simple:
Código:
Mientras el automóvil esté óptimo:
   Mientras haya que dar más vueltas:
      - Dar una vuelta por la pista
Pero esto en realidad puede ser un sólo while con 2 condiciones... ¿lo mío también?

Código:
Mientras te falten ítems del piso actual y no hayas recorrido todos los pisos:
   - Agarrar los ítems y luego ir al siguiente piso.

Ya... ¿entonces "programar" con estados es tan parecido a usar whiles, por qué al principio no parecía?  :rolleyes:


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines