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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Temas
Páginas: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35
321  Foros Generales / Foro Libre / (Resuelto) Duda tonta: ¿A las constantes les llaman K? ¿por qué? en: 27 Julio 2019, 01:16 am
Creo haber visto, pero googlé cosas relacionadas y me aparecieron más bien de física, matemática, etc, incluso de economía y música, pero no de programación.

En caso de que la respuesta sea sí ¿a qué se debe? Creo haber visto que en inglés se dice "constant", sin k. ¿Por qué la K entonces?

Edit:
Acá hallé la respuesta:
https://stackoverflow.com/questions/500030/what-is-the-significance-of-starting-constants-with-k
https://stackoverflow.com/questions/472103/lower-case-k-in-cocoa

Borren el tema si quieren, gracias, disculpas.
322  Programación / Programación General / "Variable" está mal usado en programación. ¿Solución? en: 24 Julio 2019, 04:20 am
Estaba describiendo algo en que pretendía llamar variable sólo a lo que fuese "cosa de la situación de la duda", por ejemplo si la duda es:
¿Qué 3 movimientos debo realizar para hacer jaque mate antes que mi rival?
...entonces las variables o cosas de la situación de esa duda serían las posiciones de las fichas y de quién es el turno.

El problema, me pareció, es que iba a resultar confuso porque en mis códigos hay otras cosas que en programación llaman variables pero que yo no llamaría así.

Para arreglar eso inventé la palabra "Sitpart" que abreviaría "parte de la situación".

Ahora bien, ya que estamos quisquillosos, el término "variable" en programación es ya de por sí confuso, porque si bien un programa puede variar el dato si se dan las instrucciones necesarias, hay programas con datos que no varían, es decir, "variables que no varían".

¿Pero qué sentido tienen esos programas, ponerle un nombre a algo que no variará, por qué no decir simplemente el dato?
En lo que estoy haciendo creo que puede tener sentido, ciertos datos pueden existir o no, y en tal caso variar las consecuencias del programa, aunque esos datos de por sí no varíen. Supongo que se puede hacer de otra forma, pero de momento no veo por qué.
Otro caso en que podrían tener sentido es cuando cierto dato se usará muchas veces pero no se sabe exactamente cómo debe ser, por lo que el programador probaría uno, luego otro, y así sucesivamente hasta hallarlo, momento en que sería una pérdida de tiempo sustituir por el dato todas las referencias a él. Como lo hubiera sido modificar varias veces el mismo número pudiendo simplemente modificar el dato.

Por eso intenté crear un nuevo "glosario" de términos de programación:

Citar
Valor bautizado o ValB:
Es lo que en programación se acostumbra llamar variable, pero ahí ocurre que es posible hacer códigos que tengan "variables que no varían", lo cual es una contradicción que con las nombres que estoy asignando no ocurre, y es por eso en parte que los estoy asignando, para evitar contradicciones y confusiones. Es claro que en un código ponerle un nombre a por ejemplo un número no hace que dicho número sea "variable".

Pero veo 2 problemas con la palabra "valor".

1-
Hay cosas de los programas, que no son variables, como las funciones, pero yo no pretendí referirme a ellas ni a otras cosas distintas a lo que en programación son "variables". ¿Sería una función un "valor bautizado"? ¿qué cosas serían un "valor bautizado"?

2-
Dudo mucho que un texto o cualquier dato pueda ser un "valor". La palabra "dato" se me ocurrió mientras hacía este tema así que podría ser una corrección (y todo dato está por definición bautizado creo), aunque parece complicar más el problema 1.

¿Qué nombre sería adecuado para "dato que no es una función ni array, etc"? Correcciones a mis descripciones también...

Agradezco.
323  Informática / Software / Excel o algo similar. Hacer códigos en distintas hojas. en: 13 Junio 2019, 03:46 am
Quiero hacer algo como lo que describo a continuación:
1- Crear documento llamado "000_Nada".
2- En la hoja 1 de dicho documento, pegar un código C, y agregarle una variable.
3- A la hoja 1 llamarle "Vars".
4- A la hoja 2 llamarle "VVary", pegarle C, y hacer que la cantidad de variables varíe.
Y así sucesivamente, con unas 25 hojas aprox, y creando un nuevo archivo con nuevas hojas, cuyo nombre (del archivo) exprese qué se agregó al código base C, ya que cada archivo tomará un código generado en un archivo anterior.

Probablemente no entiendan por qué quiero hacer eso, y no lo explicaré, pues no es el tema. La cuestión es que en lo posible sólo quiero usar el teclado, no el mouse. En Excel puedo cambiar las hojas usando Control+Av Pag, por ejemplo, no necesito el mouse para eso Pero el problema de Excel es que al pegar un código queda como Dios quiere, es decir... no sé, creo que si una línea tiene tabulación se pega en la columna 2, y si sólo tiene espacios no. Los códigos que copiaré no sé si tienen tabulaciones o espacios, pero cuando intenté hacer lo que digo, tuve el problema que comenté, de las tabulaciones. Otra opción sería pegar todo en una misma celda, pero se hace difícil editar, ya saben, presionar abajo pone el puntero en la celda de abajo, y además para editar una celda (sin que seb borre lo que tiene) hay que hacerle doble clic...
Probé "Insertar objeto, Documento de Word", pero parece requerir mouse para editarlo. No querer usar el mouse en lo posible, no es de mañoso o algo, sino porque ya de por sí lo que quiero hacer me resulta tedioso y por lo tanto quiero hacerlo lo más cómodo posible, lo cual en las condiciones que tengo implica usar poco el mouse. Es decir, por ejemplo en el IDE que uso puedo agregar ciertas funciones haciendo clics, eso me gusta, pero en lo que quiero hacer, en Excel u otro sitio, no se me ocurre que hacer clics pueda ahorrarme tiempo.
Y por qué Excel o algo similar. Porque me parece más ordenado. Un distinto agregado en cada distinta hoja. ¿Cómo lo podría hacer, sino? Por ejemplo:
Código___Agregado A___Agregado B
0________0A__________0B
0A_______0AA_________0AB
Esto tiene varios problemas:
1- Como dije, son unos 30 posibles agregados, o sea 30 columnas, no entran en pantalla, prefiero usar distintas hojas.
2- Los códigos puede que tengan líneas largas, o sea que, o las columnas llegarían a ser muy anchas lo cual implica perder más tiempo desplazándome por ellas, o que no todo el texto estaría visible, pero quiero que lo esté.
3- Poner códigos debajo del otros me resulta confuso al verlos, o tendría que poner una fila pintada por ejemplo, como separador, pero igual... Y habría columnas bastante vacías porque los códigos de otras serían más largos. Obviamente "0", "0A", etc, son resumenes, pues en realidad ocuparían varias líneas.

Otra posibilidad sería usando Word:
1- Creo archivo cuyo nombre diga el código base.
2- Pego el código base, y le agrego algo.
3- Lo pego de nuevo, y le agrego otra cosa.
Así sucesivamente. Lo de Excel, si se pudiera hacer sin mouse, me parece mejor, más prolijo, ordenado, 1 agregado en cada distinta hoja... pudiendo cambiar de hoja simplemente con Control+Av Pag... En Word un código puede ocupar más de una hoja...

Uso las versiones de 2003, pero dudo que ese sea el problema.

Tengo Windows XP SP3, 504 de RAM.

Bueno ¿qué me recomiendan, en cuanto al tema?

Gracias.
324  Informática / Software / ¿Se puede evitar que Chrome muestre el mensaje "las páginas no responden"? en: 26 Abril 2019, 22:53 pm
Es que es obvio que no responden y el cartel se mete encima de cualquier otra cosa que esté haciendo, así que molesta, sólo sirve para enlentecer más la carga supongo.

He googleado en distintas ocasiones pero no encontré la solución.
325  Sistemas Operativos / Windows / ¿Por qué será que mi computadora se autoresetea de vez en cuando? en: 26 Abril 2019, 22:49 pm
Me parece que, desde que quité las actualizaciones automáticas de Avast, sucede.

Es que en aquél entonces supuestamente Avast iniciaba un proceso llamado instup.exe que prácticamente trancaba mi computadora (y no me pasa sólo a mí, pero en el foro de Avast no me dieron la solución), no podía cerrarlo, ni bajarle la prioridad, y ni taskkill, ni taskill, o algo similar, funcionaron.

Por supuesto quizá nada tiene que ver con eso es un problema de hardware. Por ejemplo al encender la computadora me dice que tengo un disco checksum status bad, replace, o algo así, y tengo que presionar F4. Sí, uno de mis discos funciona mal. A veces la computadora deja de captarlo. Y quizá no es casualidad que, cuando se autoreinicia (auto porque yo no la mandé hacerlo) mi computadora no me aparece el mensaje. En este momento... exacto, según veo el disco no está siendo reconocido. Probablemente sea eso...

¿Y sino? ¿qué me recomiendan?

Ah, sí, tengo windows Xp sp3 (32 bits creo).
326  Programación / Programación General / Age of Empires 1997: ¿Las PER no se cargan bien si son muchos jugadores? en: 26 Abril 2019, 00:07 am
Es posible crear procesos (AI) y personalidades (PER). Hay datos por ahí en Internet. El problema que he visto es que si uno pone 8 jugadores (7 de sistema), la computadora parece que aplicara sólo la PER de 1 o 2. Juego en modo muy rápido. No sé si es un problema de que mi computadora es muy lenta y entonces el juego se hace el boludo (en vez de decirme "oye, para que no tarde en cargarse o funcionar el juego, sólo hemos cargado la PER de un par de jugadores") o si es que el juego está mal programado.

Me refiero al tema de los soldados, otras cosas no me fijé. Si por ejemplo la PER dice que debe tener 1 grupo de atacantes, puede que no ataque, sólo atacará 1 o 2 jugadores porque la PER de los demás parece no funcionar al menos en ese aspecto.
327  Programación / Programación General / ¿Consejos para hacer videojuego de batallas estilo Final Fantasy 6? en: 25 Abril 2019, 23:58 pm
Aunque al inicio sería con 1 sólo stat: Pow, y no habría speed sino turnos en orden al azar.
Pow es como HP pero también determina el daño. Algunos ataques hacen 10% de daño del Pow del atacante por ejemplo.

Código:
// Datos (nombres de los personajes y su pow inicial):
BondPow = 100;
RuthPow = 100;
// Especificaciones de esta batalla:
P1ID = "Bond";
P1Pow = eval(P1ID+"Pow");
Es = 1;
// Es=Enemigos
E1ID = "Ruth";
E1Pow = eval(E1ID+"Pow");
E1Frozen = 0;
// Cuan congelada está.
function Chose1E () {
// Por ahora sólo para Bond:
if (Key.isDown(65)) {
P1.gotoAndPlay(31);
gotoAndPlay (5);
//Hasta acá esta ok pero hay que corregir el error de "if keep pressing"
}
}

Código:
// Por ahora sólo Bond y Ruth.
if (random(2) >= 0) {
// Eso en realidad es == 0, pero como por ahora estoy programando al personaje del jugador vale cualquier número. Esto determina de quien es el turno.
attachMovie( "D", "D", 11 );
Act = "Bola congelante";
attachMovie( "Puntero", "P", 10 );
D._x = 760.5;
D._y = 300;
P._x = 39.4;
P._y = 300;
// Eso agrega un cuadro de diálogo, pero a modo de pensamiento, que indica qué acción el personaje realizará. Sí, por ahora la acción no se elige. Y también agrega un puntero que indica en donde se aplicará la acción.
} else {
E1.play();
//Add ef
gotoAndPlay (5);
}
Se ve así aunque animado:

Obviamente debo cambiar al personaje de la izquierda y agregar un fondo, pero el puntero va cambiando a color rojo y se mueve suavemente de atrás a adelante, al igual que el diálogo de pensamiento, que además aparece de una forma bonita y tiene algunos efectos de brillantez.

Chose1E();


En cuanto a los niveles, quisiera lograr algo así:
1er nivel: 1 personaje, 1 opción, 1 stat, 1 enemigo.
Para que tenga algo de gracia le pondría que debe realizarse el ataque en menos de 1 minuto...
El 2ndo nivel agregaría algo de lo dicho anteriormente.
328  Programación / Programación General / ¿Consejos para hacer videojuego 2d? en: 25 Abril 2019, 23:35 pm
De peleas y quizá algunas carreras o competiciones varias.

De momento tengo algo así:
Código:
Player.Facing = 1;
Player.Attacking = 0;
Player.Action = 1;
// 0 crouching, 1 nothing, 2 walking, 3 falling, 4 jumping.
function PersControl () {
if (Player.Attacking == 0) {
// Si el personaje no está atacando.
if (Player.Action == 2) {
// Si el personaje está caminando.
if (Key.isDown(65)) {
// Si se presiona A.
Player.SpeedX = 0.9*Player.Facing;
Jump ();
} else if (Key.isDown(83)) {
// Si se presiona S.
Player.gotoAndPlay(2);
Player.Attacking = 1;
Player.Action = 1;
} else if (Key.isDown(39)) {
// Si se presiona derecha.
FaceRight ();
Player._x = Player._x+0.9;
} else if (Key.isDown(37)) {
// Si se presiona izquierda.
FaceLeft ();
Player._x = Player._x-0.9;
} else {
Player.gotoAndStop(1);
Player.Action = 1;
}
} else if (Player.Action == 1) {
// Si el personaje está en reposo.
if (Key.isDown(65)) {
// Si se presiona A.
Player.SpeedX = 0;
Jump ();
} else if (Key.isDown(83)) {
// Si se presiona S.
Player.gotoAndPlay(2);
Player.Attacking = 1;
Player.Action = 1;
} else if (Key.isDown(39)) {
// Si se presiona derecha.
FaceRight ();
Player._x = Player._x+0.9;
Player.gotoAndPlay(35);
Player.Action = 2;
} else if (Key.isDown(37)) {
// Si se presiona izquierda.
FaceLeft ();
Player._x = Player._x-0.9;
Player.gotoAndPlay(35);
Player.Action = 2;
}
} else if (Player.Action == 3) {
// Si el personaje está cayendo.
Player._x = Player._x+Player.SpeedX;
Player.SpeedY = Player.SpeedY+0.1;
Player._y = Player._y+Player.SpeedY;
if ( Player._y >= 554 ) {
// Si el personaje toca el suelo.
Player._y = 554;
Player.gotoAndStop(1);
Player.Action = 1;
}
} else if (Player.Action == 4) {
// Si el personaje está saltando.
if (Key.isDown(65)) {
// Si se presiona A.
Player.SpeedY = Player.SpeedY+0.1;
if (Player.SpeedY >= 0) {
// Si el personaje comienza a caer.
Player.Action = 3;
//Falta animación
}
} else {
// Si se suelta A.
Player.SpeedY = 0.1
Player.Action = 3;
//Falta animación
}
Player._x = Player._x+Player.SpeedX;
Player._y = Player._y+Player.SpeedY;
// faltan otras teclas, no elseif
}
}
}
// Otras funciones.
function FaceRight () {
if (Player.Facing == -1) {
Player.Facing = 1;
Player._xscale = 100;
}
}
function FaceLeft () {
if (Player.Facing == 1) {
Player.Facing = -1;
Player._xscale = -100;
}
}
function Jump () {
// Dada cierta speed esto hace que disminuya??
Player.gotoAndPlay(96);
Player.Action = 4;
Player._x = Player._x+Player.SpeedX;
Player.SpeedY = -4;
Player._y = Player._y+Player.SpeedY;
}

Error:
Luego de caer y "tocar el suelo" (no hice plataformas por ahora pero no sé bien cómo se hace eso de ver si está cayendo y va a tocar una plataforma entonces que deje de caer y vuelva a al estado de reposo), si se sigue manteniendo presionada la tecla a, saltará instantáneamente de nuevo, y para colmo no lo hará hacia una dirección aunque se esté presionando -> o <-.
En otras palabras, luego de esto:
Código:
// Si el personaje toca el suelo.
Player._y = 554;
Player.gotoAndStop(1);
Player.Action = 1;
...el programa cree que el personaje está en reposo y el código está hecho de modo que en tal caso si se presiona la a salta no hacia un costado.

Posible solución:
Poner un if dentro del caso en que se presiona la tecla a en el estado de reposo, de modo que si también se presione una tecla -> o <- el salto sea hacia un costado.
No obstante, en el juego original (8 Eyes), el personaje que estoy copiando, cuando cae se queda agachado unos momentos. Tendré que arreglar varias cosas.
329  Programación / Programación General / ¿Hacer fuerza bruta para ganar en juego similar a Mastermind? en: 18 Abril 2019, 10:21 am
Este post está dividido en 3 partes.
La 1era es esta aclaración,
la 2nda es la clave y la 3era es info extra a quien requiera o le interese.
Además en café puse lo menos importante.


--------------------------------------------------------------------------------------------

El juego es así:
1- Se genera un número al azar de 3 cifras usando números enteros del 0 al 5, sin repetir. Yo no sé el número que se genera (a menos que haga trampa, pero no quiero).
2- Yo elijo un número de dichas condiciones (excepto el ser por azar).
3- El juego informa cuántos números bien colocados (considerando el número elegido por la computadora) puse, y cuántos números están mal colocados.
El paso 2 y 3 se repiten hasta digamos decir 6 códigos fallidos o hasta que yo acierte el número elegido por la compu.

Cuando digo hacer fuerza bruta me refiero a hacer un "programa" (lo digo entre comillas porque más de uno dice que yo no programo, que hago otra cosa) que encuentre las mejores respuestas o algo que luego un humano pueda usar para ganar rápido en el juego, digamos procesos a seguir. Y que además dicho "programa" sea lo más fácil posible de hacer sin importar lo poco eficiente que sea. Pero que además esté hecho en un lenguaje "normal", no en lenguaje máquina.

Bueno, yo hice algunas cosas así, pero esto la verdad me sobrepasa por el tema de las pistas creo (entiendo que es muy vago decirlo así, pero no lo entiendo más que eso), por ahora no sé hacerlo, por eso hago este tema para pedir ayuda.

Lo que hice hace años fue algo así:
Hay un objeto en el punto 0 del eje de las X.
El objetivo es que llegue al 10 en la menor cantidad de movimientos posibles teniendo estos 2:
1: Moverse +1 a la derecha (hacia el 10).
2: Moverse -1 a la izquierda.
Es obvio que conviene usar la acción 1 10 veces, pero mi idea era que el programa lo descubriera sin que yo le diera pistas como "te estás acercando", no me gusta hacer eso porque uno no siempre sabe cuando una acción es buena o mala, prefiero evaluar "desde el final". Mi programa realizaba una acción, si llegaba a una situación nueva generaba un archivo cuyo nombre la describía y el contenido marcaba cual fue la anterior y qué hizo en ella, y se generaba otro archivo que marcaba que esa situación aún no había sido analizada. Tras probar todas las acciones en una situación (reseteándola luego de cada una), se hacía lo mismo pero desde una de esas situaciones no analizadas. El resultado básicamente son archivos así:
1.txt que tiene X=0; Action=1
2.txt que tiene X=1; Action=1
3.txt que tiene X=2; Action=1
etc, hasta
10.txt que tiene X=9; Action=1
Y por supuesto los otros archivos de situaciones por acciones estúpidas como -1.txt por haberse movido hacia atrás.
Cuando el programa llegaba a colocar el objeto en el punto 10, decía la acción que realizó, cargaba la situación anterior, decía la acción que se realizó en ella, y así sucesivamente hasta llegar a la situación inicial.

Eso me parece que es aplicable a "todo":
Hacer un jaque mate, hallar la cura a una enfermedad o a un país mal gobernado, etc.
Si no se puede es porque hay variables desconocidas por ejemplo, pero quizá el mismo método con los ajustes necesarios las puede averiguar, al fin y al cabo es un método para averiguar cosas.
En un foro me plantearon un problema del que sin embargo no podía: Hacer la serie de fibonacci con alguna condición que no creo venga al caso. Quizá no pude porque no lo apliqué bien, pero tampoco creo que venga mucho al caso, aunque por decir algo...:
Si se genera una serie a comprobar si sirve o no, necesito la serie verdadera para hacer esa comprobación. Si no sé cómo es ("variable desonocida") no puedo hacer la comprobación, y si sé cómo es y la voy a usar para hacer comprobaciones entonces qué sentido tiene buscarla.
Es un caso distinto de lo que yo plantee, en que se puede saber qué se quiere pero no cómo conseguirlo, saber el final de una serie pero no la serie en sí que además es irrelevante (pueden ser cualquier números, simplemente dependen de las acciones/situaciones posibles). Sólo porque un número esté bien ya tengo "la serie" (los movimientos para llegar a dicho número), pero en el caso de la serie de fibonacci es necesario que estén bien todos sus números y si no tengo la serie (o no la genero a propósito) no puedo. En fin, no tengo mucha idea de eso (quizá hay una ecuación matemática para saber si un número está en la serie, aunque no se tenga la serie, pero ni idea tampoco, no sé hallar condiciones o efectos aún, sólo hallé series de números basados en el último principalmente).

Y aquí estoy de nuevo con un problema que ese método supuestamente "todo terreno" no sé cómo puede solucionar esto, y si es que no puede, por qué no.

¿Cual sería el método más parecido al mío, que solucionaría el problema?

¿Cómo deben ser los archivos?
Se me ocurre por ejemplo esto:
012,00_345,03_453,03_534.txt
El nombre contiene las acciones realizadas y las pistas recibidas (el contenido en sí del archivo no se me ocurre). ¿pero cómo se generaría eso?

¿Cual es la situación inicial, debo mencionar el número que yo en teoría no conozco? El resultado sería este:
Para el 012 conviene usar 012
Para el 013 conviene usar 013
Inútil.

Necesito que se generen los procesos y contar la cantidad de pasos que requieren en cada caso, o al menos la máxima cantidad de pasos que requiere en un caso.

¿Esos procesos no se pueden describir mediante una línea?

Pero a ver, por ejemplo me serviría que exista un archivo
012,01_304,01_135,02_253,01_541.txt
y otro:
012,01_304,02etc.txt
Suponiendo que iniciar con 012 y luego 304 (si la pista es 01) fuese uno de los procesos que mejor funciona en general. O sea, no necesito que un proceso con todas sus variaciones esté en 1 línea, pueden ser muchas líneas/archivos indicando las diferentes variaciones según las pistas.

Luego de algún modo buscaría los archivos más cortos, de hecho podría ponerles LX al inicio y sustituir X por la cantidad de números que tienen luego.
Entonces si jugando al juego pongo 012 y obtengo 11 busco el proceso 012,11, veo qué dice después, y así sucesivamente.


Algo que se me ocurrió es generar un proceso, que puede ser 012,013,014etc, y contar en todos los casos cuánto tardaría en averiguarlos. Es decir, ignora las pistas. ¿Será esa la respuesta? No creo, sin pistas cualquier proceso puede tardar mucho.

¿Pistas en los nombres de archivos y acciones dentro? No sabría bien cómo contar qué tarda más. Podría eliminar los archivos más largos y ver cual proceso se repite más ¿?
Creo que esto no serviría, iguales pistas pueden obtenerse por distintas situaciones, los archivos serían sustituidos por otros.

Af. dado un número N el proceso P1 tarda 1 paso.
No, tampoco, porque cuando digo proceso me refiero a una línea y si me basara sólo en los que tardan menos obtendría los que por suerte aciertan de una.

En fin, como ven le doy vueltas pero no me sale.


--------------------------------------------------------------------------------------------

MasterMind:
https://es.wikipedia.org/wiki/Mastermind
Más info aquí:
https://en.wikipedia.org/wiki/Mastermind_(board_game)#Algorithms

Ejemplo del juego que dije:
1- Se genera el número 210
2.1- Digo 012
3.1- Me dice 1-2, lo cual significa que hay 1 número bien colocado (el 1, pero yo eso en realidad no puedo saberlo en este punto porque en el caso real no sé el número generado) y 2 mal colocados.
2.2- Debido a que en este caso habría tenido bastante suerte porque acerté cuales números son los presentes, sólo me queda averiguar el orden correcto. Sé que el número es alguno de estos 3: 021, 210 o 102. A partir de ahora es cuestión de probar esos 3, no sé si hay un orden de pruebas mejor que otro.

Búsqueda de modos de ganar antes de hacer este tema:
Quería tener un diagrama de flujo o algo similar:

Dado que habría muchas flechas en cada caso, pensé en hacer algo así:
012__0-0__345__0-3__453__0-3__534
_______________1-2__354__0-3__435__0-3__543
_____0-1

Por otro lado, pensando una explicación para un ejemplo en que me equivoqué, se me ocurrió un método que no me interesa usar en programación pero es interesante:
En cada columna de la siguiente "tabla" están los posibles números de cada cifra:
000
111
222
333
444
555
La mayoría de las posibles pistas nos permiten tachar algunos números.

El ejemplo siempre será 012.

0-1 o 0-2:
_00
1_1
22_
333
444
555

0-3:
_00
1_1
22_
___
___
___

1-0 o 2-0:
0__
_1_
__2
333
444
555

0-0:
___
___
___
333
444
555

1-2:
000
111
222
___
___
___

1-1:
Creo que esta no.
330  Programación / Programación General / Aquí tienen 5 retos y la oportunidad de ayudarme. en: 25 Noviembre 2018, 04:51 am
Reto 1:
Genera una lista así:
1
2
3
4
5
6
1 1
1 2
1 3
1 4
1 5
1 6
2 1
etc
Es como contar pero sólo se usan los números del 1 al 6 y además van separados.


Reto 2:
Genera una lista así:
1
2
3 4
3
3 5
6 7 8
4
3 6
6 7 9
10 11 12 13
etc
La 1era combinación está compuesta de 1 número.
Luego hay otra de 1 número y otra de 2.
Luego otra de 1, de 2, y de 3.
Luego 1, 2, 3, 4.
etc.
En cuanto qué números van en cada una, depende de si el largo de la combinación ya existía o no. Si existía, simplemente se le suma 1 al número final. Si no existía, el 1er número será el mayor que se haya alcanzado hasta ahora, +1.


Reto 3:
Genera una lista así:
1
2
3 4
3
3 5
6 1 2
4
3 6
6 1 3
4 5 6 1
etc
Es como la anterior pero los números van del 1 al 6. Cuando alguno se pasa de 6 vuelve a 1. El considerado máximo número es el último de la combinación que tenga más largo (y se modifica también cuando se está creando una combinación más larga, claro).


Reto 4:
Genera una lista como la anterior pero en la que luego de hacer una combinacion con el método "clásico" (como la lista anterior) se pregunte al usuario si quiere una de un largo aún no alcanzado (método "creativo"). Ej:
1
¿Creativo? Sí. 2 3
2
¿Creativo? No.
2 4
¿Creativo? No.
3
¿Creativo? Sí. 5 6 1.
2 5
etc
El máximo largo del proceso clásico no aumenta porque se creen mayores largos con el proceso creativo, pero si están creados el proceso clásico usa sus números en vez de crearlos.


Reto 5:
Genera una lista como la anterior pero en la cual el máximo de números sea 100 y en los momentos de crear una combinación de nuevo largo no se use el máximo+1 sino... no sé explicarlo pero básicamente el más alejado considerando todos los usados y considerando que forman un circulo (1 está luego de 100, el más alejado de 1 es 50 aproximadamente). Ejemplo aproximado:
1
¿Creativo? Sí. 50 51
2
¿Creativo? Sí. 25 26
25 27
¿Creativo? Sí. 75 76 77
etc
O sea, inicialmente se usa 1 como siempre. Luego lo que esté en medio de 2 y 100, que aproximadamente es 50. Luego 2, clásico. Luego, si se pide creativo o cuando haya que crear, se usa de 3 a 49, o sino de 52 a 100, lo que tenga más cantidad de números. Así sucesivamente. La cantidad de "fragmentos" va aumentando, o sea, 1ero tenemos de 2 a 100. Luego aproximadamente de 2 a 49 y de 51 a 100. Luego de un par de veces tendremos aproximadamente de 1 a 24, de 26 a 49, de 51 a 74, y de 76 a 100.


Yo estoy haciendo algo un poquitito más complicado que el 4. Tengo otro tema creado al respecto, en esta misma sección. Ver cómo harían estas cosas uds me ayudaría. Gracias.
Páginas: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines