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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 [187] 188 189 190 191 192 193 194
1861  Seguridad Informática / Análisis y Diseño de Malware / Re: Proyecto de crear un antivirus en: 26 Abril 2019, 20:30 pm
No entiendo cómo alguna gente tiene que crear X y no sabe por dónde empezar o no tiene idea de cómo hacerlo. Dile a tu profesor que te enseñó mal, que te devuelva el dinero si es que le has pagado. Y si es para un cliente entonces haber sido sincero con él, haberle dicho que no sabías hacer lo que te pedía. Sería injusto que tú apruebes un examen o ganes dinero por lo que te diga otro, mientras el otro quizá no tenga ni diploma ni trabajo.

Yo entré al tema pensando que eras todo un capo, y sólo iba a recomendarte que el antivirus no controle TANTO la computadora de quien lo usa, que al fin y al cabo la computadora es del usuario no del antivirus.
El que yo uso inicia un proceso que prácticamente tranca mi computadora y no lo puedo cerrar. Cambié la configuración para que no se actualice automáticamente sino simplemente que me avise, y me ocurría que de vez en cuando mi compu se reiniciaba sola, y cuando volvía al SO me aparecía el cartelito del antivirus de que podía actualizarlo, lo cual me hizo pensar que reseteaba por culpa suya, así que lo cambié a manual. Otra cosa que molesta de dicho antivirus es que cuando termina de actualizarse, si estoy haciendo otra cosa me pone la ventana encima, y aunque vuelva a la ventana de lo que estoy haciendo la vuelve a poner luego de unos segundos y así sucesivamente hasta que la cierre.

Podrías empezar por la interfase, por cómo vas a seleccionar los archivos a revisar, o por cómo harás la revisión.
1862  Programación / Programación C/C++ / Re: Juego mastermind en: 26 Abril 2019, 20:05 pm
No sé c++ pero fijate en prog general que estoy haciendo algo similar. Quizá nos podamos ayudar.

Si quieres vichate eso y/o decime mediante pseudocódigo qué has hecho.
1863  Programación / Programación General / Re: Calculadora en java Codigo fuente en: 26 Abril 2019, 16:30 pm
¿Qué fue lo más difícil de hacer una calculadora? No entiendo por qué eso es un ejercicio tan común en programación si parece una bobada. Sería interesante por ejemplo que la calculadora tenga un modo binario, trinario, etc. Yo muchas veces preciso algo así. Que por ejemplo 03+1 me de 10 (son 4 números posibles: 0, 1, 2, y 3). También he necesitado cosas como por ejemplo JP+8. A=0, B=1, etc. AA=No recuerdo pero es lo que sigue a la Z, probablemente 27.
Pero ojo, no es que necesite una calculadora para hacer esas cosas, sino códigos simples para usarlos cuando necesite, diversos cálculos así.

Tal vez eres un poco egocéntrico, digo ¿cuántas personas hacen calculadoras en java? ¿te registras en un foro sólo para mostrar un link a una tuya, como si fuese algo especial? ¿qué pasaría si cada persona que hace algún ejercicio similar abriera un tema de cada cosa "normal" que hace? Digo normal porque no es gran cosa pero tampoco es un hola mundo. ¿No es spam?

Es mi opinión, lamento si ofende, no es mi intención. Suerte.

Edit:
Cuando se dice calculadora me imagino que apretan botones o escriben números, luego un signo, luego otro número, y... Bueno, supongamos que fuese 2+2. Luego hacen:
Código:
Si signo="+"
  numenpantalla=num1+num2
Pero me surgió la duda: ¿Lo hacen así o hacen las cuentas uds mismos de alguna manera? Porque de la 1er forma de hecho no es hacer una calculadora, es hacer unos dibujos y botones para usar una calculadora que está en la computadora, que el creador de los dibujos y botones en cuestión no hizo. Entonces eso no es hacer una calculadora, es hacer que a un usuario le resulte cómodo hacer operaciones usando dibujos y botones y un sistema que ya venía de antes.
1864  Programación / Ejercicios / Re: Ayúdenme con unos ejercicios en python 3 en: 26 Abril 2019, 13:56 pm
Yo interpreté que si el usuario escribe 5 tiene que hacer 1+2+3+4+5.

En la respuesta que le has dado, WHK, parece que pides ingresar 2 números.

En fin, no sé de pitones pero en pseudocódigo, como yo lo entendí, sería algo así:
Código:
Contador = 0
Suma = 0
Repetir
   Contador++
   Suma = Suma+Contador
mientras Contador < n
La parte de ingresar el número la he salteado. Si hay algún error me gustaría saberlo. Puedes cambiar Contador por Numero_aSumar o algo así si te queda más claro, se entiende que también es un contador. Y sino puedes usar 2 variables pero tendrán el mismo contenido...
Edit: La parte de print también me la he salteado. En ese sentido creo que WHK lo hizo bien.

WHK: Dijo "números enteros positivos". Lo de negativos está de más.
1865  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.
1866  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.
1867  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.
1868  Programación / Programación General / Re: Cual es la diferencia entre estos dos scripts (batch) en: 25 Abril 2019, 22:59 pm
En algún caso que no recuerdo me hubiera gustado haber tenido un reconocedor de diferencias entre 2 textos o códigos.

Pero tú no querías eso, ya habías identificado la diferencia, lo que preguntabas es la diferencia en las consecuencias...
1869  Programación / Programación General / Re: Glosario de téminos de programación [elhacker.net] en: 25 Abril 2019, 22:52 pm
Podrías agregar función, loop, iteración, y algo que es parecido a función.

Función tengo claro qué es, es como un subprograma al que se lo puede ejecutar repetidamente, la función es para eso, para definir algo una vez y luego usarlo repetidamente.
Lo que me confunde un poco es que hay funciones a las que se le pasan variables y otras no, o es que esas no son funciones.
Una vez alguien me preguntó qué diferencia hay entre una función y no recuerdo qué otra cosa.

Loops creo que son circulos, procesos que se repiten.
Iteraciones capaz que es como se tradujo, aunque parece más bien la cantidad de repeticiones.
1870  Programación / Programación General / Re: ¿Hacer fuerza bruta para ganar en juego similar a Mastermind? en: 24 Abril 2019, 19:10 pm
La respuesta parece estar relacionada con lo que llaman "árboles de decisión".
https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n#Ejemplo
O algo similar.

Intento aplicarlo a una versión simplificada, en que el número sólo tiene 2 caracteres y pueden ser del 0 al 3.

El 1er número con el que se intenta acertar puede ser cualquiera (si el juego admitiese que contenga números repetidos entonces sí la eficiencia puede que varíe y por tanto este número importaría). Digamos 01.

A partir de ahí hay 4 posibles "ramas", según las 4 posibles pistas que se reciba:
Código:
    /--> 0-0
   /--> 0-1
01
   \--> 0-2
    \--> 1-0
También existe la posibilidad de 2-0 pero en tal caso se entiende que se llegó al resultado así que no es necesario ver qué se hace después, pues si este método es aplicado por una persona la respuesta es nada, ya ganó.

Ahora a partir de cada posible pista ponemos otro número. Por ejemplo:
Código:
    /--> 0-0 --> 02
   /--> 0-1 --> 02
01
   \--> 0-2 --> 02
    \--> 1-0 --> 02
Y el proceso se repite 1 vez más, porque según he visto en este caso simplificado hay un método que adivina el num en 3 "tiros".

Una vez hecho eso, se probaría dicho método para cada posible número y se contaría cuánto tardó en hallar los números, si es que los halló todos.

Luego, el método se variaría y se repetiría el paso anterior.

El programa terminaría cuando ya no sea posible variar el método, en cuyo caso diría cual fue el que halló los números en menos "tiros".

Esto daría el método que tiene el mejor promedio, es decir, si uds leen por ahí info de esto verán que se habla de métodos que no llegan a tardar X tiros, y otros que sí pero en promedio tardan menos. No sé realmente qué me sirve (en el modo difícil puede que el "mínimo máximo", porque si es posible saber que viene un caso de los que tardará podría cancelar el juego y de ese modo ganar más rápido (es un juego para ganar fichas), pero esto me parece poco probable (no creo que sea posible en general ganar tan rápido como para que convenga abandonar ciertas apuestas)), pero me parece que es eso, el mínimo promedio.


Bueno, el problema ahora es implementar eso.

El 1er número del método sería N1.
N1="01";
Nótese el problema de eso. No puedo poner 01. Tiene que ser "01". Pero si es texto es más difícil sustituir caracteres por otros (si fuese posible decir 01+1 y que quede 02, buenísimo, pero como es texto y no números hay que usar ifs y cosas...).
Otra opción sería poner 12 y que se interprete que el 0 representa al 1, el 1 al 2. etc. Y sí, voy a hacerlo así, porque es mucho más fácil aunque requiera una traducción humana (o más código al final).
Entonces N1=12

Luego vienen los otros números a los que no sé cómo llamarles porque debo referirme a ellos más adelante y no sé cual es la mejor forma. No se olvide que esto es una versión simplificada. Entiendo que no me esté explicando bien pero es que no sé, verán más adelante el problema.

Supongamos que les llamo así:
Código:
    /--> 0-0 --> N2 -> (N3, N4, N5, N6)
   /--> 0-1 --> N7 -> (N8, N9, N10, N11)
N1
   \--> 0-2 --> N12 -> (N13, N14, N15, N16)
    \--> 1-0 --> N17 -> (N18, N19, N20, N21)

Entiéndase que lo que está entre paréntesis son los números de las 4 posibles ramas que salen de esos puntos, no me pidan que dibuje las ramas...

Y supongamos que todas esas variables son 13.

Probamos cuánto tarda en adivinar el número 34 (X). Lo principal es algo así:
Código:
Si el 1er número de N1 es el 1er número de X
   Si el 2ndo número de N1 es el 2ndo número de X
      Acertó.
   sino
      Pista: 1-0
sino si el 1er número de N1 es el 2ndo número de X
   Si el 2ndo número de N1 es el 1er número de X
      Pista: 0-2
   sino
      Pista: 0-1
sino si el 2ndo número de N1 es el 1er número de X
   Pista: 0-1
sino
   Pista 0-0
Ahora dependiendo de qué pista sea chequearemos lo mismo pero cambiando N1 por el número que sea. Acá es donde viene lo difícil, hay que hacer referencia a ese número, yo no quiero hacer tantos ifs para eso. Además, como esto es una versión simplificada sólo hay que hacerlo 1 o 2 veces, pero en la versión normal serían digamos 7 tiros a decir y en la versión difícil unos 15. No tengo idea de cuántos, pero son bastantes.


Probablemente no se entienda lo que estoy diciendo pero bueno ¿alguna idea hasta ahí? ¿hay algo que me pueda simplificar la tarea? ¿quizá arrays? ¿nombrar las variables de otro modo?

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

Edit:
Olvidé unas cosas porque debía irme.

Hay basicamente 2 problemas.
1- Cuando se quiere ver cómo sigue el método, cual es la variable luego de la pista.
2- Cuando se quiere variar el método, qué variable se variará, y en caso de llegar al límite cual es la siguiente, etc.

Con los nombres que les puse, el 2 está solucionado. Porque, imaginen que en 7285, 7=V1, 2=V2, etc.
O sea, cada posición está marcada por una variable. El número se podría variar haciendo V5+1, cuando llegue a 9 pasa a 0 y se hace V4+1 y así sucesivamente. Bueno, el método es parecido, está hecho de unos números representados con variables, variamos desde la 21 hasta la 1.
Pero el 1 no sé cómo arreglarlo.

Otro modo de nombrar las variables sería algo así:
Código:
    /--> N1 --> (N11, N12, N13, N14)
   /--> N2 --> (N21, N22, N23, N24)
N
etc.
Entonces si obtengo la pista 1, para ver cual número probar luego busco la variable cuyo nombre es igual a la anterior pero agregando 1.
Esto resuelve el problema 2 pero el 1 se complica. Aún así me parece suficientemente viable... Lo probaré.
Páginas: 1 ... 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 [187] 188 189 190 191 192 193 194
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines