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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Muestra en consola el nombre de la variable, no su contenido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Muestra en consola el nombre de la variable, no su contenido  (Leído 2,568 veces)
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Muestra en consola el nombre de la variable, no su contenido
« en: 2 Marzo 2023, 21:09 pm »

Hola:

Como curiosidad y novedades del .NET 7.0 o por ahí.

Una cosa es mostrar el contenido de una variable que tiene un texto, otra cosa es mostrar el nombre de la variable. Hace años intentado por mi ignorancia, mostrar el nombre de la variable y ya está.

Hoy en día.

¿Para qué mostrar el nombre de una variable?

Lo que he hecho en el programa de abajo es:
Mostrar el nombre de la variable.
Mostrar el contenido de esa variable.
Mostrar nombre y contenido de la variable.

Código C#:
Código
  1. // Variable.
  2. string soyUnaVariable = "Esto es el contenido de la Variable soyUnaVariable.";
  3.  
  4. // Imprime nombre de la variable.
  5. Console.WriteLine(nameof(soyUnaVariable));
  6.  
  7. // Imprime el contenido de la variable.
  8. Console.WriteLine(soyUnaVariable);
  9. Console.WriteLine();
  10.  
  11. // Imprime nombre de la variable y su contenido.
  12. Console.WriteLine(nameof(soyUnaVariable) + " = " + soyUnaVariable);
  13. Console.WriteLine();
  14.  
  15. // Lo mismo pero otra forma de mostarlo en pantalla.
  16. Console.WriteLine("{0} = {1}", nameof(soyUnaVariable), soyUnaVariable);
  17.  
  18. // Pulse cualquier tecla para salir.
  19. Console.ReadKey();

Solo quiero saber que utilidad puede tener.

Lo único que se me ocurre es no usar el depurador paso a paso del IDE para ver que contiene, aquí lo hace en tiempo real.

Saludos.


« Última modificación: 2 Marzo 2023, 21:12 pm por Meta » En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.214


Superhacker (es broma xD )


Ver Perfil
Re: Muestra en consola el nombre de la variable, no su contenido
« Respuesta #1 en: 2 Marzo 2023, 22:07 pm »

Sólo le veo utilidad si el nombre es generado según variables que desconoces. Por ejemplo si pones una lista de posibles nombres y creas una variable con un nombre al azar de entre ellos, te puede servir. Normalmente se usaría Personaje1Ubicacion por ejemplo, en vez de PablitoUbicacion, pero capaz que en algún caso conviene hacerlo así.
Pero tú llamas a la variable sabiendo el nombre, en este caso no lo sabrías, tendrías que guardarlo en una variable cuando se genere.

Últimamente estoy pensando en representar visualmente los grafos que se producen en mis buscadores de las series más cortas de acciones (puede sonar muy complejo pero sólo lo apliqué en cosas muy simples, y capaz que ni siquiera se llaman así, pero es que fuerza bruta tampoco creo que sea), hace como 1 año que no toco eso pero, si mal no recuerdo se crean variables cuyos nombres describen una situación y el contenido es qué acción se realizó antes de que se produjeran y/o cual era la situación anterior, no me acuerdo, pero, en este caso puede que convenga mostrar el nombre de la variable.
Te busco algún code porque imagino que eso no está bien explicado, pero como digo estoy fuera de práctica así que no esperes gran cosa.
Código
  1.   actions for fotograma 1
  2.      // Situación inicial.
  3.      BaseHP = 10;
  4.      Action = 1;
  5.      BaseEnHP = 10;
  6.      // Guardar Situación inicial.
  7.      SitID = "S"+BaseHP+"_"+BaseEnHP;
  8.      set (SitID+"HP", BaseHP);
  9.      set (SitID+"EnHP", BaseEnHP);
  10.      set (SitID+"Action", "Ninguno");
  11.      // Variables de Unsolved situaciones.
  12.      U = 0;
  13.      Us = 0;
  14.   actions for fotograma 2
  15.      // Reset Situación.
  16.      HP = BaseHP;
  17.      EnHP = BaseEnHP;
  18.      trace ("La sit es: "+HP+"_"+EnHP);
  19.      // Aplicación.
  20.      trace ("Player attacks with "+Action+"!");
  21.      EnHP = EnHP-Action;
  22.      trace ("EnHP reducido a: "+EnHP);
  23.      // ¿Sol?
  24.      if (EnHP<=0) {
  25.         // Solución; iniciar mostrar lista.
  26.         List = Action;
  27.         gotoAndPlay (4);
  28.      } else {
  29.         // Sino, ambos están OK.
  30.         // Efecto.
  31.         trace ("Enemy attacks!");
  32.         HP = HP-1;
  33.         trace ("HP reducido a: "+HP);
  34.         if (0<HP) {
  35.            // Ambos están OK.
  36.            // ¿La situación está anotada?
  37.            if (eval("S"+HP+"_"+EnHP+"HP") == undefined) {
  38.               // No. Anotarla.
  39.               SitID = "S"+HP+"_"+EnHP;
  40.               set (SitID+"HP", BaseHP);
  41.               set (SitID+"EnHP", BaseEnHP);
  42.               set (SitID+"Action", Action);
  43.               trace ("Nueva sit anotada: "+SitID);
  44.               Us = Us+1;
  45.               SitID = "U"+Us;
  46.               set (SitID+"HP", HP);
  47.               set (SitID+"EnHP", EnHP);
  48.            }
  49.            // Sino, el enemigo ganó.
  50.         }
  51.      }
  52.   actions for fotograma 3
  53.      // La situación existe o el jugador perdió.
  54.      // ¿Modificar candidato es posible?
  55.      if (Action<3) {
  56.         // Modificación de candidato.
  57.         Action = Action+2;
  58.         gotoAndPlay (2);
  59.      } else if (U<Us) {
  60.         // Usar Unsolved.
  61.         U = U+1;
  62.         BaseHP = eval("U"+U+"HP");
  63.         BaseEnHP = eval("U"+U+"EnHP");
  64.         Action = 1;
  65.         gotoAndPlay (2);
  66.      } else {
  67.         // No hay Solución.
  68.         List = "No hay sol";
  69.         stop ();
  70.      }
  71.   actions for fotograma 5
  72.      SitID = eval("S"+BaseHP+"_"+BaseEnHP+"Action");
  73.      Base2HP = BaseHP;
  74.      BaseHP = eval("S"+BaseHP+"_"+BaseEnHP+"HP");
  75.      BaseEnHP = eval("S"+Base2HP+"_"+BaseEnHP+"EnHP");
  76.      if (SitID != "Ninguno") {
  77.         List = SitID+" "+List;
  78.         gotoAndPlay (4);
  79.      } else {
  80.         stop ();
  81.      }
  82.   }
  83.  

Con los codes que dicen set aquí
Código:
      BaseHP = 10;
      Action = 1;
      BaseEnHP = 10;
      // Guardar Situación inicial.
      SitID = "S"+BaseHP+"_"+BaseEnHP;
      set (SitID+"HP", BaseHP);
      set (SitID+"EnHP", BaseEnHP);
      set (SitID+"Action", "Ninguno");
Se crean estas variables:
S10_10HP = 10
S10_10EnHP = 10
S10_10Action = "Ninguno"
Si mal no recuerdo significa que la situación anterior a la inicial fue ella misma (lo cual se interpreta como que fue ninguna) y que la acción conque se produjo fue ninguna.

Tendríamos S10_10 en pantalla, indicando cómo era la 1era situación, el inicio del grafo.

Código:
            // ¿La situación está anotada?
            if (eval("S"+HP+"_"+EnHP+"HP") == undefined) {
               // No. Anotarla.
               SitID = "S"+HP+"_"+EnHP;
               set (SitID+"HP", BaseHP);
               set (SitID+"EnHP", BaseEnHP);
               set (SitID+"Action", Action);
Esto se realiza luego de que los rivales se golpeen y sólo si ambos sobreviven. El ataque usado por la IA que intenta aprender "el camino más corto" (hacia vencer a su rival) fue el que hace 1 punto de daño, el enemigo usa ese ataque siempre, por lo que ahora tenemos:
S9_9HP = 10
S9_9EnHP = 10
S9_9Action = 1
Significa que ahora ambos luchadores tienen 9 HP, antes tenían 10, y la acción usada por la IA fue la 1.

Entonces, el grafo ahora es:
S10_10
      |
      | 1
      V
S9_9
Próximamente se regresa a la situación anterior, y si hay otra acción posible se realiza, la cual es quitar 3 HP en vez de 1, lo que nos da...
            3
S10_10 ---> S9_7
      |
      | 1
      V
S9_9
Pero creo que los que saben del tema saben nombrar a las situaciones como les de la gana o no sé bien qué hacen, tenía un libro donde hacían esto pero lo presté y no me lo devolvió el mr.


« Última modificación: 2 Marzo 2023, 22:09 pm por Tachikomaia » En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Muestra en consola el nombre de la variable, no su contenido
« Respuesta #2 en: 5 Marzo 2023, 02:50 am »

Buena explicación. ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como capturar el contenido de la consola?
.NET (C#, VB.NET, ASP)
BETA_V 2 2,981 Último mensaje 26 Agosto 2008, 17:43 pm
por BETA_V
Jquery y autocomplete .. muestra contenido de tbl pero no filtra. ayuda
Desarrollo Web
Hadess_inf 1 3,537 Último mensaje 26 Octubre 2012, 10:53 am
por #!drvy
[Python] Mi consola no muestra nada...
Scripting
BigByte 4 4,339 Último mensaje 21 Diciembre 2014, 22:33 pm
por Eleкtro
no me muestra el contenido de mi vector
Programación C/C++
lebr123 5 2,109 Último mensaje 14 Agosto 2017, 04:00 am
por ivancea96
No muestra el valor de mi variable javascript
Desarrollo Web
SrTrp 1 1,594 Último mensaje 22 Octubre 2017, 19:27 pm
por SrTrp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines