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


 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 ... 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47
371  Programación / Programación General / Re: Idea de juego en: 13 Junio 2019, 03:51
Me dejé llevar, jeje. Pero es que él dijo "estoy pidiendo ideas de juegos nada mas, el resto lo hago yo", como si él pudiera hacer cualquier cosa que se le diga. Lo más probable es que sea un estudiante sí, pero quizá es alguien que estudió tanto programación y jugó tan pocos videojuegos, que sabe hacer cualquiera pero no sabe cual hacer xD

Para mí, lo más fácil es algo así:
http://www.fastswf.com/y9VEQiU
Más fácil que un 3 en línea, y que un ahorcado. Puedo decir que, un 3 en línea nunca intenté mucho hacerlo, pero el hecho es que nunca llegué a hacerlo, por las complicaciones que tuve. Basicamente, hay que poner 9 botones (cosas que cuando las señalas cambia el ícono del mouse), y deben transformarse en simples imagenes cuando las cliqueas o el rival las elige. Supongo que sé cómo hacerlo, pero bue, nunca lo hice, por algo será... Igual ahora estoy con esto, más interesante:
http://www.fastswf.com/oQcOv5U
Usa flechas, A y S. No terminado, obviamente... Es un estilo Final Fantasy de los viejos.
372  Programación / Programación General / Re: Idea de juego en: 10 Junio 2019, 06:23
Yo quisiera un videojuego de batallas de personajes de otros videojuegos. Una especie de Smash Bros pero con los personajes más o menos tal cual son en su juego original. Idénticos.
Y que tenga buena historia. Yo diría que es a lo que más me dediqué, y no he podido hacerla. El problema es que parto del juego 8 Eyes, cuya historia, para colmo, no es como dice en el manual yanquie, sino que en la versión original, japonesa, es distinta, y más acorde a lo que se ve en el juego, incluso el orden de los jefes, pero aún así sigue siendo un tanto incoherente aparentemente, injustificable o incomprensible en algunos aspectos...
También podría ser de olimpiadas, es decir, no sólo luchas. Hay un juego de Kunio muy bueno en ese sentido. Los 2 primeros escenarios son carreras por una ciudad digamos, en los que puedes golpear al rival. El 3er escenarios es trepar por un palo y reventar un globo, pero también el rival es golpeable. En el 4to y último, lucha pura. La idea sería mezclar más cosas, como fútbol o voley ball.

Lo que no sé si está muy de moda, son juegos de cooperación. Es decir, lo común en juegos, según mi experiencia o los que por algún motivo he jugado más (RPGs), es que debas matar o desmayar mostruos o animales que por algún motivo te atacan. Así, los juegos basicamente muestran o enseñan formas de matar o dañar a rivales y evitar morir o evitar ser dañado. No enseñan a hacer chistes por ejemplo, comentarios interesantes, poder aportar algo a una persona... sólo hacer daño y evitar ser dañado. En parte es por eso que tengo tan pocos amigos xD

Otro que me gustaría es un estilo Mario Tennis pero en que la pelota pueda ir más a las puntas o botar cerca de la red aunque vaya rápido. Es decir, esos juegos, a diferencia de por ejemplo el Super Family Tenis de SNES, que está muy bueno, tienen la particularidad de que los tiros están como precalculados para que vayan con la mayor fuerza posible y ángulo acorde a las propiedades del personaje. Significa que es muy difícil hacer un out o fault. Puedes poner algo de random para que sí pueda suceder, pero me gusta eso de que los jugadores jueguen bien en vez de que yo, el jugador, tenga que apretar el botón en cierto momento o lo que sea, porque si lo hago mal mi jugador lanza la bola fuera. En el MT no es así, pero el gran problema de ese juego es que los tiros fuertes siempre van al fondo, y eso es irreal, prácticamente no es posible en el juego hacer un tiro con mucho ángulo, es aburridísimo jugar de fondo.
Me fascina el efecto liftado y en parte el cortado. En el Mario Tenis de GBA, lamentablemente esos efectos no se ven mucho. Solo el sidespin, que es otra cosa. Pero en el de GB tampoco ocurre TANTO. En el SFT de SNES sí, aunque no hay side... y además sólo en ciertos jugadores es tan notable. Bueno, la idea sería combinar lo mejor de cada juego... Yo quería hacer un juego de tenis donde estuvieran todos los personajes posibles, incluyendo por supuesto los de Prince of Tenis.

Se me ocurren otras cosas, como de cartas. Pero todos me resultan difíciles. Ese de cartas, ya ni recuerdo bien qué tenía en mente, pero algo que quería era que el jugador pudiese crear cartas, es decir, no simplemente usar unas existentes como en Yugioh. Además quería que los costes o poder de las cartas fuese dinámico, basado en la cantidad de victorias o derrotas que hubo al usar la carta.
373  Programación / Programación General / Re: Programación fragmentada en: 1 Mayo 2019, 20:22
Tiro fruta:
Si pudieras hacer un programa o lo que sea, que envíe sólo un trozo del password candidato y sólo chequee si ese trozo es igual al trozo correspondiente al password real, sí...
O sea... habría que ver qué acciones hace la máquina cuando le dices un password entero, entonces harías algo similar pero sólo que chequee una parte.

Pero probablemente es imposible. Se supone que la otra computadora (si es que hablamos de un password así, en otra) tiene un código que recibe datos pero no instrucciones ¿o sí?
Si fuese así quizá podrías decirle "dime el password" y ya está.
O... "dime qué entradas has recibido últimamente".
374  Programación / Programación General / Re: ¿Hacer fuerza bruta para ganar en juego similar a Mastermind? en: 30 Abril 2019, 18:13
Aún no vi que el siguiente código halle alguna solución, por lo que quizá no funciona.
Código:
Escena 1
   actions for fotograma 1
      MejorMetodo = "¿?";
      MMIntentosRequeridos = 100;
      MaxIntentosporSecreto = 3;
      // Nodos.
      // El nombre describe la situación.
      // El contenido es sustituido por V(X).
      N = 1;
      N00 = 1;
      N01 = 1;
      N02 = 1;
      N10 = 1;
      N0000 = 1;
      N0001 = 1;
      N0002 = 1;
      N0010 = 1;
      N0100 = 1;
      N0101 = 1;
      N0102 = 1;
      N0110 = 1;
      N0200 = 1;
      N0201 = 1;
      N0202 = 1;
      N0210 = 1;
      N1000 = 1;
      N1001 = 1;
      N1002 = 1;
      N1010 = 1;
      // Valores. También usados por NúmeroSecreto.
      V1 = 12;
      V2 = 13;
      V3 = 21;
      V4 = 23;
      V5 = 31;
      V6 = 32;
      // Referencias. Usado para variar fácilmente el contenido de los nodos.
      R0 = "N";
      R1 = "N00";
      R2 = "N01";
      R3 = "N02";
      R4 = "N10";
      R5 = "N0000";
      R6 = "N0001";
      R7 = "N0002";
      R8 = "N0010";
      R9 = "N0100";
      R10 = "N0101";
      R11 = "N0102";
      R12 = "N0110";
      R13 = "N0200";
      R14 = "N0201";
      R15 = "N0202";
      R16 = "N0210";
      R17 = "N1000";
      R18 = "N1001";
      R19 = "N1002";
      R20 = "N1010";
   actions for fotograma 2
      NumeroSecreto = 1;
      Intentos = 0;
      MetodoProbandose = N+""+N00+N01+N02+N10+N0000+N0001+N0002+N0010+N0100+N0101+N0102+N0110+N0200+N0201+N0202+N0210+N1000+N1001+N1002+N1010;
   actions for fotograma 3
      Chequear = "N";
      ChequearTraducido = eval("V"+eval(Chequear));
      IntentosEnesteSecreto = 0;
      NumeroSecretoTraducido = eval("V"+NumeroSecreto);
   actions for fotograma 4
      IntentosEnesteSecreto = IntentosEnesteSecreto+1;
      if (NumeroSecretoTraducido == ChequearTraducido) {
         // Secreto adivinado.
         Intentos = Intentos+IntentosEnesteSecreto;
         if (NumeroSecreto<6) {
            // Probar el método con otro secreto.
            NumeroSecreto = NumeroSecreto+1;
            gotoAndPlay (3);
         } else {
            // El método adivinó todo secreto dentro del plazo.
            if (Intentos<MMIntentosRequeridos) {
               // El método es el mejor por ahora, guardarlo.
               MMIntentosRequeridos = Intentos;
               MejorMetodo = MetodoProbandose;
               trace ("El mejor método por ahora es "+MejorMetodo);
            }
            // Modificar método.
            gotoAndPlay (6);
         }
      } else if (NumeroSecretoTraducido.charAt(0) == ChequearTraducido.charAt(0)) {
         Chequear = Chequear+"10";
      } else if (NumeroSecretoTraducido.charAt(0) == ChequearTraducido.charAt(1)) {
         if (NumeroSecretoTraducido.charAt(1) == ChequearTraducido.charAt(0)) {
            Chequear = Chequear+"02";
         } else {
            Chequear = Chequear+"01";
         }
      } else if (NumeroSecretoTraducido.charAt(1) == ChequearTraducido.charAt(0)) {
         Chequear = Chequear+"01";
      } else {
         Chequear = Chequear+"00";
      }
   actions for fotograma 5
      if (IntentosEnesteSecreto<MaxIntentosporSecreto) {
         // Probar siguientes nodos.
         ChequearTraducido = eval("V"+eval(Chequear));
         gotoAndPlay (4);
      }
      // sino modificar método.
   actions for fotograma 6
      // Modificar método.
      Puntero = 0;
   actions for fotograma 7
      if (eval(eval("R"+Puntero))<6) {
         set (eval("R"+Puntero), eval(eval("R"+Puntero))+1);
         gotoAndPlay (2);
      } else {
         if (Puntero<20) {
            set (eval("R"+Puntero), 1);
            Puntero = Puntero+1;
         } else {
            // Ya se probaron todos los métodos. Mostrar el mejor.
            trace (MejorMetodo);
            stop ();
         }
      }
      // Problema en casos más difíciles: Está abierto a dar números con subnúmeros repetidos. No debería.
   actions for fotograma 8
      gotoAndPlay (7);
Vale decir, no obstante, que cuando hice las pruebas, en el frame 4 donde por ejemplo dice +"00" antes era +00 y por lo que acabo de ver, en el modo Explorador de películas se mostraba como +0, por lo que quizá el intérprete, compilador o lo que sea, lo interpretaba así también. Extraño. Pero le puse las comillas por las dudas.
Ayer dejé la compu prendida pero se apagó, y no sé cuánto tarda el código pero es mucho. Creo que debe probar 6^20 métodos variando a su vez los números secretos, o sea (6^20)*6 aunque descartando un método cuando no haya un número, lo cual ocurre en la mayoría de esos nuevos casos.

Definitivamente sería bueno agilizar ese código. ¿Ideas?

En cuanto a cómo funciona, escribí esto:
Citar
El árbol es más o menos así:
Código:
  /-N00 -> N0000, N0001, etc
  /-N01
N
  \-N02
   \-N10
No está completo porque me aburre mucho completarlo, pero eso que ven son los nombres de las variables que marcan qué número se usará al inicio (N), al recibir la pista 0-0 (N00), al recibir la pista 00 y luego de nuevo 00 (N0000), etc.
Por ejemplo N puede ser 12. Inicialmente digamos que todas son 11 (recuerden que el juego sólo admite poner subnúmeros distintos, pero por ahora para no complicarme lo dejo así)..

¿Por qué esos nombres?
Porque así me resulta fácil referirme a la variable que necesito. Si me estoy refiriendo a la variable N y obtengo la pista 00, agrego 00 a lo que ya tenía (en este caso N) y sé que la siguiente variable a usar será N00.

El programa tomará uno de los números secretos posibles y usará el árbol para intentar adivinarlo.
Si lo adivina en 3 tiradas o menos, cambia el número secreto.
Si adivina todos los números así, entonces ese método se guarda si es mejor que los anteriores guardados.

Sea que el método resultó malo o bueno, ahora hay que variarlo, probar otro. Esto es un problema, porque debido al nombre que puse a las variables, no puedo decir "varía la V1, si está al máximo entonces la V2, etc",. hablamos por ejemplo de 0000, luego 0001, luego 0002, luego 0010, no es fácil o rápido indicar cual variar luego de cual.
La solución que hallé, es crear R1, R2, etc, que son referencias a las variables de nombres raros. Así:
R0 = "N"
R1 = "N00"
R2 = "N01"
etc
Entonces si eval(eval(R1)) no está al máximo eso aumenta, sino aumenta evalevalR2, etc.
Pero otra cosa más es necesaria para simplificar. Como los posibles códigos secretos dan saltos de por ejemplo 13 a 21, los he puesto en una lista y las variables N00, etc, no contienen 12 por ejemplo, sino referencias a una posición de la lista, donde sí está el 12, etc.
La variación del número secreto también hace eso.

Esto es el árbol inicial, es decir, el contenido de las variables, no sus nombres.
Código:
  /-1 -> 1, 1, etc
  /-1
1
  \-1
   \-1
Esto es la lista de la que toman valores cuando se necesita ver qué números indican esos nodos:
V1 = 12
V2 = 13
etc (los nombré al inicio del tema).

Bueno, espero que se entienda, pero sino, si conocen otro método y me lo dicen de modo que yo lo pueda entender buenísimo.
375  Programación / Programación General / Re: ¿Hacer fuerza bruta para ganar en juego similar a Mastermind? en: 29 Abril 2019, 07:27
WS:
Acabo de darme cuenta que la respuesta es no. Porque como dije en el 1er post, y lo olvidé, muchos me han dicho que yo no sé programar o programación y entonces ya ni lo discuto.

De momento tengo esto:
Código:
Escena 1
   actions for fotograma 1
      MejorMetodo = "¿?";
      MMIntentosRequeridos = 10;
      MaxIntentosporSecreto = 3;
      // Nodos.
      // El nombre describe la situación.
      // El contenido es sustituido por V(X).
      N = 1;
      N00 = 1;
      N01 = 1;
      N02 = 1;
      N10 = 1;
      N0000 = 1;
      N0001 = 1;
      N0002 = 1;
      N0010 = 1;
      N0100 = 1;
      N0101 = 1;
      N0102 = 1;
      N0110 = 1;
      N0200 = 1;
      N0201 = 1;
      N0202 = 1;
      N0210 = 1;
      N1000 = 1;
      N1001 = 1;
      N1002 = 1;
      N1010 = 1;
      // Valores. También usados por NúmeroSecreto.
      V1 = 12;
      V2 = 13;
      V3 = 21;
      V4 = 23;
      V5 = 31;
      V6 = 32;
   actions for fotograma 2
      NumeroSecreto = 1;
      Intentos = 0;
      MetodoProbandose = N+""+N00+N01+N02+N10+N0000+N0001+N0002+N0010+N0100+N0101+N0102+N0110+N0200+N0201+N0202+N0210+N1000+N1001+N1002+N1010;
   actions for fotograma 3
      Chequear = "N";
      ChequearTraducido = eval("V"+eval(Chequear));
      IntentosEnesteSecreto = 0;
      NumeroSecretoTraducido = eval("V"+NumeroSecreto);
      trace ("El número secreto es "+NumeroSecretoTraducido);
   actions for fotograma 4
      IntentosEnesteSecreto = IntentosEnesteSecreto+1;
      trace (MetodoProbandose+" probó "+ChequearTraducido);
      if (NumeroSecretoTraducido == ChequearTraducido) {
         // Secreto adivinado.
         trace (MetodoProbandose+" adivinó "+NumeroSecretoTraducido);
         Intentos = Intentos+IntentosEnesteSecreto;
         if (NumeroSecreto<6) {
            // Probar el método con otro secreto.
            NumeroSecreto = NumeroSecreto+1;
            gotoAndPlay (3);
         } else {
            // El método adivinó todo secreto dentro del plazo.
            if (Intentos<MMIntentosRequeridos) {
               // El método es el mejor por ahora, guardarlo.
               MMIntentosRequeridos = Intentos;
               MejorMetodo = MetodoProbandose;
               trace ("El mejor método por ahora es "+MejorMetodo);
            }
            // Modificar método.
            gotoAndPlay (6);
         }
      } else if (NumeroSecretoTraducido.charAt(0) == ChequearTraducido.charAt(0)) {
         Chequear = Chequear+10;
      } else if (NumeroSecretoTraducido.charAt(0) == ChequearTraducido.charAt(1)) {
         if (NumeroSecretoTraducido.charAt(1) == ChequearTraducido.charAt(0)) {
            Chequear = Chequear+0;
         } else {
            Chequear = Chequear+0;
         }
      } else if (NumeroSecretoTraducido.charAt(1) == ChequearTraducido.charAt(0)) {
         Chequear = Chequear+0;
      } else {
         Chequear = Chequear+0;
      }
   actions for fotograma 5
      if (IntentosEnesteSecreto<MaxIntentosporSecreto) {
         // Probar siguientes nodos.
         ChequearTraducido = eval("V"+eval(Chequear));
         gotoAndPlay (4);
      }
      // sino modificar método.
   actions for fotograma 6
      // Modificar método.
      if (N10<6) {
         N10 = N10+1;
      } else {
         N10 = 1;
         if (N02<6) {
            N02 = N02+1;
         } else {
            N02 = 1;
            if (N01<6) {
               N01 = N01+1;
            } else {
               N01 = 1;
               if (N00<6) {
                  N00 = N00+1;
               } else {
>>>           // Hay que seguir poniendo ifs aquí, por ej para N0000.
                  // Ya se probaron todos los métodos. Mostrar el mejor.
                  trace (MejorMetodo);
                  stop ();
               }
            }
         }
      }
   actions for fotograma 7
      gotoAndPlay (2);
Independientemente de lo que falta, no sé si funciona bien. Hallé una solución para las referencias, pero me hice un poco de lío porque hice un código para resolver el problema 2/2 y de repente estaba haciendo el 2/3, sin haber chequeado que el 2/2 lo resolviera bien.
Los ifs creo que pueden mejorarse con algo de eval, pero de momento no lo intenté, otro día será.

En cuanto a las referencias, no sé si se entiende.
Estos son los nombres de los nodos:
Código:
   /--> N00 --> Dependiendo de cual sea la pista: (N0000, N0001, N0002, N0010)
   /--> N01 -->
N
   \--> N02 -->
    \--> N10 -->
Se entiende que no los escribí todos en eso, pero que los nombres están basados en las pistas. Se pueden hacer más cortos, pero para mí sería más complicado.
Estos son los contenidos iniciales:
Código:
   /--> 1 --> (1, 1, 1, 1)
   /--> 1 --> (1, 1, 1, 1)
1
   \--> 1 --> (1, 1, 1, 1)
    \--> 1 --> (1, 1, 1, 1)
Sí, todos 1. Sí, obviamente eso no es la solución, es tonto probar eso, pero así es la fuerza bruta, sólo pensar cómo hacer que la compu resuelva el problema, no pensar más de lo necesario.
Y esos contenidos se interpretan o traducen a valores marcados por variables V.

¿Y por qué rayos eso?
En este momento no sé explicarlo, me perdí (pronto me voy a dormir). Pero háganlo de otra forma si saben, me serviría.

Por otro lado, tengo esta versión anterior, una parte:
Código:
function AumentarSecreto () {
if (NumeroSecreto.charAt(1) < 3) {
NumeroSecreto = Number(NumeroSecreto.charAt(0)+""+(NumeroSecreto.charAt(1)+1));
} else {
NumeroSecreto = Number(NumeroSecreto.charAt(0)+"1");
if (NumeroSecreto.charAt(0) < 3) {
NumeroSecreto = Number((NumeroSecreto.charAt(0)+1)+NumeroSecreto.charAt(1));
} else {
//Imposible aumentar, avisar.
}
// Chequear que no haya repets.
}
function AumentarvalordeNodos () {
if (X < 13) {
X = X+1;
} else if (X == 13) {
X = ;
A pesar de todo, lo que hice me parece más simple que eso. Para variar el número secreto, como no podía hacer+1 porque por ejemplo de 13 pega un salto a 21, tenía que modificar el último caracter, y si llega al límite entonces también el 1ero. Además, de esa forma podía haber números repetidos, cosa que en el juego no sucede.
Lo que hice en la nueva versión fue hacer una lista de los valores y que la variable a aumentar tuviese una referencia a una parte de dicha lista, así que al aumentar el valor de esa referencia pasa al siguiente valor, sin que sea posible que haya números repetidos.

En cuanto a aumentar el valor de los nodos, es igual pero con un montón de ifs porque es uno para cada nodo, pero es algo que tendré que optimizar.
Ahora bien, lo que estaba haciendo en la versión vieja es intentar evitar manejar cambios por caracteres, entonces iba a hacer varios ifs como que si es 11 o 12 se le suma 1, sino si es 13 salta a 21, etc.
La X era un intento de reducir los ifs, porque imagínense, por cada nodo había que poner como 10 ifs.

En fin, creo que lo peor ha pasado. Gracias por el apoyo.
376  Programación / Programación General / Re: ¿Hacer fuerza bruta para ganar en juego similar a Mastermind? en: 28 Abril 2019, 21:34
WS:
Me pones en un lío, porque mira:
Código:
Si sé hacerlo,
   y te digo que sí,
      creo que desmostrártelo me tomaría mucho tiempo/esfuerzo que no tengo ganas de perder/hacer, por lo tanto no me creerías y me haría más mal que bien decirte que sí. Y a la conversación supongo que igual. También podría decirte que sí y que si no me crees no es mi problema, pero creo que estaríamos más o menos en la misma, o peor. O es un riesgo que no quiero correr.
   sino si te digo que no,
      me siento mal porque yo es como si creyera en el karma, lo cual en este sentido, me causaría perder la habilidad de hacer algo que sí sé.
si no sé hacerlo
   y te digo que no sé,
      no hay problema.
   sino si te digo que sí
      sería un imbécil
Así que, o lo sé y no te daré pruebas, o no lo sé. Quizá soy demasiado soberbio como para admitir que no lo sé. Lo dejo a tu criterio.

Pero antes de intentar un árbol que se cree sólo, intentaría hacerlo manualmente. Precisamente eso haré. Además, como te dije, hacer referencia a los nodos me resulta muy complicado. Si por ejemplo lo hago así:
Código:
   /--M11
  M1-M12
 /
M
Entonces para volver al nodo anterior simplemente llamo a una variable que tenga un número menos. Si fuesen más de 10 nodos (posibles movimientos a partir de una situación) en un caso se me complica, pero (se me acaba de ocurrir) podría llamarles M01 y sé que siempre tengo que borrar 2 números por cada nodos a los que vuelva. Lo que me complicaría de ese modo, creo, es la creación del árbol. No quisiera hacerlo manualmente.
Pero yo no lo quiero hacer de ese modo...
¿Vos me planteas representar en 1 árbol todas las posibles situaciones del juego? Entonces yo no tengo problema con las referencias.
Pero yo en el juego que te dije quiero que los posibles caminos representen las pistas, mientras que el contenido de los nodos sea variable. Y eso es lo que me resulta difícil. Supongamos que varío el M44. Cuando ya no quedan más opciones, variaré el M43 y el M44. Así sucesivamente, hasta el 41. Luego tengo que bajar al 34. Eso es lo que me complica, esos saltos que tengo que dar. No le veo mucho sentido a poner ifs indicando esos saltos. Si no me entendés esperá algunos días a que haga el code en modo super simplificado. Estoy más enganchado con el juego 2d que con esto, por eso en parte tardo.
Con mi método creo que el árbol sería más pequeño, no representa todo en 1 imagen, y aún así encuentra la solución.


tincopasan:
Es lo que quiero, si es posible que eso funcione. En cuanto al nombre me baso en esto:
https://es.wikipedia.org/wiki/B%C3%BAsqueda_de_fuerza_bruta
"consiste en enumerar sistemáticamente todos los posibles candidatos para la solución de un problema, con el fin de chequear si dicho candidato satisface la solución al mismo."

"es sencilla de implementar y, siempre que exista, encuentra una solución."

¿Qué es lo que está ocurriendo entonces? ¿el jueguito en cuestión es tan complicado que hasta este método "sencillo de implementar" no es tal?
377  Foros Generales / Foro Libre / Re: PepsiCo demanda a agricultores de la India por cultivar sus papas en: 28 Abril 2019, 19:20
Deberían hacer esas papas sin sal o con 50% o vaya a saber. Me gustan pero son muy saladas.

Por cierto yo intenté cultivar papas en mi casa pero generalmente me salen pequeñitas o se las come algún bicho (a la planta). Hormigas, caracoles, babosas, escarabajos extraños, unos bichitos marrones que las llenan de telas, y ahora tengo una (y sólo tenía 1 en ese lugar) que de un día a otro quedó sin hojas y justo tenía una tapa blanca abajo y quedó llena de unas cositas negras que parecen ser cada de algún bicho no muy pequeño.
378  Foros Generales / Foro Libre / Re: ¡¡¡Sorprendente!!! esto es lo que pasa si buscas ‘Thanos’ en Google en: 28 Abril 2019, 19:18
Creo que fue ayer cuando googlé y no me apareció algo especial. Hoy tampoco, y eso que hoy vi que era en imagenes según tu foto. Pero la 1era foto no me aparece. ¿Será porque mi Chrome está desacualizado?
Citar
Error 1011 Ray ID: (borré esto)
Access denied
379  Programación / Programación General / Re: ¿Hacer fuerza bruta para ganar en juego similar a Mastermind? en: 28 Abril 2019, 18:59
Para ganar en juegos de tablero o en juegos donde las posibles jugadas abran ramas de múltiples decisiones se usan sistemas de redes neuronales.
Lo que había visto de eso eran unos árboles en los que cada punto o neurona multiplicaba el valor por un número que se iba ajustando, y me pareció algo confuso y menos eficiente u ordenado que una fuerza bruta. Además, como está tan de moda, qué sé yo, prefiero ir por otro lado.

Citar
Yo que tú primero aprendería a programar algo menos ambicioso
Es que no pensé que lo fuera tanto. De momento lo que me jode como comenté en el 2ndo post es que no sé cómo nombrar las variables como para poder llamarlas o modificarlas sin problema.
Algo que quizá me serviría es poder convertir conteos de 10 números (0, 1, 2, 3, 4... 10, 11...) a 4 (1, 2, 3, 4, 12) pero salteando repeticiones (olvidé eso) uf...
No hice aún lo que dije que haría, veré.

Citar
un algoritmo que use ese sistema (árboles n-arios) para ganar un cuatro en línea contra un humano.
Con mi antiguo sistema no sé cómo hacerlo debido a que hay un rival. Capaz que no es tan difícil pero nunca probé y como digo estoy muy olvidado de aquello y desganado de volver a usarlo por ahora.
Para lo que me pides y cómo lo pides, se me ocurren 2 posibles formas:
Los casilleros del tablero son numerados de esta forma:
1, 2, 3, 4
5, 6, 7, 8
etc

Y:
0 significa que hay un 0
1 significa que está vacío
2 significa que hay cruz

Método A:
Código:
2111111111111111
   2011111111111111
   2101111111111111
   etc
1211111111111111
etc
Eso habría que generarlo con código. Son todos los posibles tableros en el orden conque pueden ocurrir, si empieza la X.
Desventaja: Es posible producir situaciones repetidas, en que sólo cambia el cómo se llega a ella. Supongo que no es mucho problema si hay forma de dejar marcado que sí se llegó a ella y ya fue revisada.
Se parece mucho a mi antiguo método.

Método B:
Código:
        /-2-Win
       /-1
      /-0
  /-2
2--1
 \-0

1

0
Obviamente tampoco está completo. Eso muestra, en cada "columna", los posibles estados de un casillero. En la izquierda, el casillero 1, más a la derecha el 2, etc.
Ventajas: Más fácil de hacer.
Desventajas: Se generan situaciones imposibles.
Si puedes evitar la desventaja, bárbaro, pero veo otra...: No sé cómo esto puede servir para que el programa aprenda, es decir, le estás dando las soluciones, eso no es que aprenda experimentando, es que copie...


El video no me pareció muy instructivo que digamos... Habla de muchas cosas complejas que no explica y que no sé si en última instancia sirven (quizá son sólo optimizadores, pero no son algo necesario; yo por ahora sólo necesito lo necesario).

¿Qué opinas de lo que había dicho? ¿no es la fuerza bruta un método que puede resolver cualquier problema? ¿por qué entonces parece que no puedo aplicarlo aquí? ¿es que no logro ingeniarme o que el método no sirve aquí? ¿qué propiedades así de determinantes hay en los problemas? En el sentido de qué cosas en ellos hacen que la fuerza bruta u otros métodos conocidos se vuelvan inaplicables. El video habla por ejemplo de variables desconocidas, pero me gustaría ver una clasificación más clara, o algo más explicado.
¿Y cómo hago referencia a variables cuando...? Lo planteado en el 2ndo post.

Mira, puede que no sepa hacer siquiera un 2 en línea (tablero de 2x2 imagino), pero más cierto me parece que no tengo ganas de intentarlo, pues siento que me desviaría mucho. Lo que haré es intentar el juego que propose pero con 2 números y sólo 2 posibles números, y luego 3. Luego, recién los 4, y luego sí 3 números y 6 posibles. A ver qué sale.
380  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Unir mas a la comunidad elhacker.net en: 26 Abril 2019, 23:42
Si quieres "unirte" un poco a mí responde alguno de los 48932873 temas que tengo en programación general sin respuestas. O sino seguí intentando unir a la gente del foro mediante un medio que no sea el foro. Yo hago lo mismo: Voy a foros de reguetoon a decirle a la gente que venga a este foro. Vienen despacito pero vienen.
Páginas: 1 ... 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines