Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Adalher

#61
Hola sadfud,

con control de pestañas me refiero a Tabcontrol.


Gracias y saludos
#62
Hola a todos,

¿cómo puedo agregar dos controles de pestaña en una aplicación?

Para un control de pestañas, quería que apareciera el siguiente Layout: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

¿Tengo que cambiar algo en el Layout?


Gracias y saludos
#63
Hola,

tengo Ableton 10 Live y ahora quiero grabar varias pistas de audio.

Sin embargo, los sonidos solo llegan en una pista de audio, por lo que solo puedo grabar una pista de audio.

Estoy agradecido por cualquier ayuda!


Gracias y saludos
#64
Hola,

nuestro servidor ha estado luchando con la inactividad durante mucho tiempo. ¿Alguien sabe de un bot de Discord que cuente el tiempo del usuario cuando está en la conversación, es decir, que cuente cuánto tiempo estuvieron los usuarios en la conversación y que automáticamente les asigne un rol después de xy minutos?


Gracias y saludos
#65
Hola QU35T,

debería ser posible en la configuración.


Saludos
#66
Hola Marck82,

en el país en donde te encuentras, ahí te encuentras en la red del proveedor de red tradicional.

Vos necesitas un proveedor de VPN en donde estés conectado a una ubicación deseada a través de VPN.


Saludos
#67
Hola a todos,

¿Es posible ingresar en Read Dead Redemption 2 en Stadia con mi cuenta actual de Rockstar y transmitir los estados de juego? ¿Y es posible jugar junto con otros que juegan en XBox RDD2?


Gracias y saludos
#68
Hola a todos,

¿dónde puedo conseguir un número virtual gratis para WhatsApp?


Gracias y saludos
#69
Hola a todos,

primero sobre mi hardware: tengo una PC con una GTX 1060 y 16 GB de RAM. La CPU es una Ryzen 5 1600. A pesar de este hardware, el Modpack todavía se laguea un período de unos pocos segundos. Mi TARGR, así como mi RAM y CPU no se utilizan por completo. El área de procesamiento ya se ha reducido a 8 fragmentos. ¿Qué debo hacer en el Twitch Launcher para que vuelva a funcionar sin problemas? ¿O puede deberse realmente al hardware? Solo como explicación: yo puedo jugar a GTA y Rainbow con altas resoluciones en constantes 60 FPS.

Gracias y saludos
#70
Hola a todos,

cómo puedo crear símbolos cómo estos: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


Gracias y saludos
#71
Java / Re:[Java] Maquina Tragaperras
Octubre 27, 2019, 08:47:44 PM
Hola /d3v/nu11,

revisando de nuevo tu código, se me ocurre esto:
produjiste algo que en realidad es mucho mejor que las publicaciones de otros usuarios. Mejor, pero no fantástico o bueno en absoluto. Hay bastantes comentarios que puedo hacer para permitirte mejorar.

En primer lugar, tu clase principal:
Código: java

System.out.println("Introduzca el crédito: ");
Scanner teclado = new Scanner(System.in);
double credito = teclado.nextDouble();


Sin manejo de excepciones. Simplemente puedo ingresar cualquier valor de NaN y tu aplicación se bloqueará porque no estás verificando la entrada. Para empezar, puedo detener completamente tu juego simplemente ingresando un crédito negativo, que es algo que probablemente quieras restringir.

También puedo interrumpir tu aplicación ingresando un valor de crédito que es menor que el costo de "jugar". Debes verificar esto:

Código: java

Maquina maquina = new Maquina(3, 0.5, premio1, premio2);


Código: java

if (getCredito() >= precJug) {
                        credDisp = credDisp - precJug;
                       
                        Random generador = new Random();
                        Fruta[] frutas;
                        frutas = new Fruta[casillas];
                        Fruta[] frutas_aleatorias=Fruta.values();
                       
                        for (int i = 0;i<casillas; i++){
                                int index = generador.nextInt(5);
                                frutas[i]=frutas_aleatorias[index];
                        }
                       
                        int n = 1; // n = numero de premios
                        for (int i = 0; i <= n; i++) {
                                //comprueba si combinación esta en premios registrados
                                if (Arrays.equals(frutas, coleccion[i].getCombGanad()) == true){
                                        credDisp = credDisp + coleccion[i].getPremio();
                                }       
                        }
                        return frutas;
                }
                return null;


Esto hace que tu función retorne null en lugar de una excepción adecuada o simplemente no permitir jugadas cuando el crédito < la cantidad requerida para jugar. En este momento estoy atrapado en un bucle infinito. Gracias por el bucle infinito, /d3v/nu11...

No tienes que seguir configurando el 'prec jug', sea lo que sea que eso signifique. Hacerlo una vez es más que suficiente y no tiene absolutamente ningún propósito establecer un valor para que sea igual a sí mismo una y otra vez cuando se juega. Ya has establecido este valor en el constructor:
Código: java

public Maquina(int nCasillas, double precio, Premio... premio) {
                precJug=precio;
                casillas=nCasillas;
                coleccion=premio;
        }


Pero tu constructor no maneja adecuadamente los valores de variables ilegales. Puedes hacer fácilmente una Máquina con un 'precJug' (mierhw hombre, usa nombres de variables adecuados) negativo, por ejemplo.

Este método aquí devuelve un valor, pero nunca usas este valor:
Código: java

public double incrementarCredito(double incremento) {
                return credDisp + incremento;
        }


También usas esto solo una vez al comienzo del 'juego', lo que hace que esta función sea completamente redundante. No sirve para nada. No hace nada. Tienes otra función que establece el crédito correctamente si eso es lo que pretendías hacer, pero por alguna razón la nombraste mal (como suelen hacer los usuarios de aquí):
Código: java

public void setCredDisp(double credito) {
                credDisp = credito;
        }


Además del nombramiento de esta función, no debes permitir que se pase crédito negativo.

En tu clase de Premio, se supone que tu constructor agregue un crédito al saldo total del usuario si gana, sin embargo, puedes poner fácilmente números negativos y vectores null aquí ya que una vez más no verificas los valores de las variables que son pasadas. Esto puede causar un comportamiento que no deseas para el propósito de este 'juego':
Código: java

public Premio(Fruta[] combinacion, int p) {
                CombGanad=combinacion;
                premio=p;
        }


También tienes bastantes métodos que no sirven para nada porque no se usan en ningún lado:
Código: java

System.out.println("Retirando "+credDisp+" euros de la maquina");
                credDisp = 0;
                return credDisp;
        }
public int getnCasillas() {
                return casillas;
        }
public Premio[] getColeccion() {
                return coleccion;
        }
public double getPrecJug() {
                return precJug;
        }


Aquí, haces algo que es bastante divertido:
Código: java

if (Arrays.equals(frutas, coleccion[i].getCombGanad()) == true){
                                        ...
                                }


Puedes simplificar esto:
Código: java

if (Arrays.equals(frutas, coleccion[i].getCombGanad())){
                                        ...
                                }


Por cierto, tampoco cierras tu Scanner.

Entonces para concluir:
. Usa nombres de variables apropiados
. Usa getters y setters adecuados
. Usa nombres de funciones adecuados
. Utiliza manejos de errores adecuados
. Restringe la entrada de usuario a valores que tengan sentido
. Elimina funciones no utilizadas
. Cierra tu Scanner de mierhw


Saludos
#72
Java / Re:Cifrado en JAVA
Octubre 25, 2019, 02:51:55 PM
Hola DeBobiPro,

revisando de nuevo tu código se me ocurren estas cosas:
Esto está un poco roto en MUCHOS casos. Todos se reducen a un solo problema. Cuando la frase contiene algún carácter, ese cambio de N veces es un valor demasiado grande y causa un IndexOutOfBounds (phrase = ".", key = "4").

Ahora, la calidad del código:
. Los nombres de las clases deben ser camelCased.
. ALFA tendría que ser final.
. Código repetitivo que se puede reducir.

Aquí hay una versión mejorada que hace lo que hace el tuyo, pero es más limpia y extensible:
Código: java

public class Cifrar {
    private final String alfabeto;

    public Cifrar(String alfabeto) {
        this.alfabeto = alfabeto;
    }

    public String cifrar(String key, String phrase) {
        return rot(key, phrase, true);
    }

    public String decifrar(String key, String phrase) {
        return rot(key, phrase, false);
    }

    private String rot(String key, String phrase, boolean avanzar) {
        char[] fuera = new char[phrase.length()];
        for(int i = 0; i < phrase.length(); i++) {
            char c = phrase.charAt(i);
            int indexAlfa = alfabeto.indexOf(c);
            // Solo reemplaza caracteres en el alfabeto
            if (indexAlfa >= 0) {
                // Determina la cantidad de cambios del i'th char en la frase
                int keyIndex = i % key.length();
                int llave = Integer.parseInt(key.substring(keyIndex, keyIndex + 1));
                if(!avanzar)
                    llave = -llave;
                // Obtener el índice de reemplazo en el alfabeto
                int reemplazarIndex = (indexAlfa + llave) % alfabeto.length();
                if (reemplazarIndex < 0)
                    reemplazarIndex = alfabeto.length() + reemplazarIndex;
                // Reemplazar
                c = alfabeto.charAt(reemplazarIndex);
            }
            fuera[i] = c;
        }
        return new String(fuera);
    }
}


Y para usarlo:
Código: java

// Da caracteres soportados como cadena, pueden aparecer en cualquier orden.
Cifrar c = new Cifrar(
        "abcdefghijklmnopqrstuvwxyz" +
        "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
        "1234567890"
);
// key es una secuencia numérica
String key = "123456789";
// Frase y estados codificados/decodificados
String phrase = "aaaaaaaaaa abc def ghi jkl mno pqr stu vwxyz 123 456 7890 -_=+*&^%$#@! () [] {}";
String codificado = c.cifrar(key, phrase);
String decodificado = c.decifrar(key, codificado);
// Imprimir valores
System.out.println(phrase);
System.out.println(codificado);
System.out.println(decodificado);


Salida:
Código: text

aaaaaaaaaa abc def ghi jkl mno pqr stu vwxyz 123 456 7890 -_=+*&^%$#@! () [] {}
bcdefghijb dfh kmo ikm prt npr uwy Buw zBDFH 246 9ac f9ac -_=+*&^%$#@! () [] {}
aaaaaaaaaa abc def ghi jkl mno pqr stu vwxyz 123 456 7890 -_=+*&^%$#@! () [] {}


Cita de: DeBobiPro
ea

Cita de: Adalher
Retazo

Ten en cuenta que mi código es más limpio y cumple con los estándares POO.
DeBobiPro, escucha mis consejos para todo lo demás y deja de declarar matrices como si Java fuera C, por favor.
* 1 != 2: Esto es simplemente un meme. El paso 8 es donde las cosas van mal.

Lo mantuve conforme a la implementación de OP a este respecto intencionalmente.
Si bien la llave podría especificarse como int, eventualmente se convertiría en un string en este caso para obtener los dígitos. No es solo un gran número, sino una serie de números para cambiar. Probablemente sería mejor verificar las entradas en el constructor y lanzar una InvalidKeyException comprobada para casos ofensivos en lugar de tomar un int primitivo.
Código: java

public String cifrar(String key, String phrase) throws InvalidKeySpecException {
    verificar(key);
    return rot(key, phrase, true);
}

public String decifrar(String key, String phrase) throws InvalidKeySpecException {
    verificar(key);
    return rot(key, phrase, false);
}

private void verificar(String key)throws InvalidKeySpecException  {
    if (!key.matches("\\d+"))
        throw new InvalidKeySpecException("La clave solo debe contener una secuencia de dígitos");
}


Alternativamente, puedes pasar una matriz int para omitir el análisis de dígitos.
Entonces incluso podrías usar llaves como: int[] key = { -241, 24, 48, -3, 0, 93, 5 };
Código: java

public String cifrar(int[] key, String phrase) {
    return rot(key, phrase, true);
}

public String decifrar(int[] key, String phrase) {
    return rot(key, phrase, false);
}

private String rot(int[] key, String phrase, boolean avanzar) {
    char[] fuera = new char[phrase.length()];
    for(int i = 0; i < phrase.length(); i++) {
        char c = phrase.charAt(i);
        int indexAlfa = alfabeto.indexOf(c);
        // Solo reemplaza caracteres en el alfabeto
        if (indexAlfa >= 0) {
            // Determina la cantidad de cambios del i'th char en la frase
            int keyIndex = i % key.length;
            int llave = key[keyIndex];
            if(!avanzar)
                llave = -llave;
            // Obtener el índice de reemplazo en el alfabeto
            int reemplazarIndex = (indexAlfa + llave) % alfabeto.length();
            if (reemplazarIndex < 0)
                reemplazarIndex = alfabeto.length() + reemplazarIndex;
            // Reemplazar
            c = alfabeto.charAt(reemplazarIndex);
        }
        fuera[i] = c;
    }
    return new String(fuera);
}


Y sí, sea cual sea la salida que realmente se desee, mi código sería la opción óptima aquí, especialmente el fragmento final que ofrece más versatilidad y diversidad a pesar de que rompe por completo cualquier parecido con tu 'cifrado' (lo que de hecho es algo bueno en lo que respecta a esto porque el tuyo está roto y limitado a valores positivos de un solo dígito y falla en ciertos escenarios).
De todos modos, DeBobiPro, es una mejora con respecto a las publicaciones de BigBear al ver cómo esto al menos se compila. No es que debas tomar esto como un elogio. O tal vez deberías, ya no estoy seguro.


Saludos
#73
Ideas y Sugerencias / Bytes
Octubre 21, 2019, 07:17:25 PM
Hola a todos,

quería darles la siguiente idea: ¿Por qué no hacen un sistema de puntos? No me refiero a la reputación. Más bien a un sistema en donde usuarios podrán donar a otros usuarios puntos. A los puntos se los podía llamar bytes.

Y qué si se llega a los 1000 bytes entonces se podrán canjearlos por 5, 38 €.


Gracias y saludos
#74
Java / Re:[Java] Class DH Tools 0.2
Octubre 21, 2019, 04:03:49 PM
Hola AXCESS,

estoy de acuerdo. Aquí hay algo nuevo para BigBear, recién presentado en JDK 13:

Código: java

String resultado = switch (opcion) {
case "protocol"  -> url.getProtocol();
case "authority" -> url.getAuthority();
case "host"         -> url.getHost();
case "port"         -> String.valueOf(url.getPort());
case "path"        -> url.getPath();
...
default              -> throw new IllegalArgumentException("Opción no soportada!");
};


Expresiones switch. ¿No se ve bien? ¿Te das cuenta de que nadie aquí te ha llamado a pesar del troll que hay detrás de todo esto?


Saludos


Hola BigBear,

además de los otros problemas enumerados anteriormente, utiliza los nombres de métodos de camelCasing como 'extractFileByUrl' en lugar de 'extract_file_by_url'.


Saludos
#75
Java / Java - Caesar cifra ESTABLE – v0.70
Octubre 19, 2019, 05:03:50 PM
Caesar Cipher STABLE - v1.00 - By Iyyel

Hola chicos y chicas!
Hoy decidí hacer una pequeña muestra de un software de cifrado para ustedes. El programa se encuentra en estado beta como lo sugiere su nombre, porque todavía hay algunos errores. Así que vamos a empezar con el espectáculo.

Tabla de contenido

1. Por defecto
2. FAQ
3. Exportar
4. Limpiar
5. Llave
6. Decriptar
7. cifrar
8. Bugs conocidos


1. Por defecto

Esto es lo que verán después de haber ejecutado la aplicación. Verán dos áreas de texto, en donde el usuario puede escribir ya sea texto descifrado o cifrado, así como botones de control y el valor de la llave a la derecha de las áreas de texto.

2. FAQ

La pestaña de FAQ está llena de toda información que posiblemente deseen saber sobre el software y sobre cómo operarlo. Además, tiene información relevante sobre el desarrollador si fuera necesario algún contacto.

3. Exportar

El botón de exportación se usa para cuando el usuario desea generar lo que está escrito en las pestañas de cifrado y descifrado, así como el valor de la llave más información adicional. Hará un archivo .txt llamado CaesarcifraTexto en una carpeta llamada Caesercifra en el directorio C:\.

4. Limpiar

El botón Limpiar le hace honor a su nombre. Simplemente borra tanto las áreas de descifrado como las de cifrado, por lo que están listas para ser utilizadas para un nuevo uso.

5. Llave

Aquí es donde insertas el valor shift que deseas que utilice el cifrado césar para cifrar el texto descifrado. Un ejemplo de una instancia con el valor shift 1 se muestra en la imagen de arriba. El valor shift puede ser negativo o positivo.

6. Decriptar

Cuando se hace clic en el botón decriptar, el programa toma el texto del área de texto 'cifrado' y lo ejecuta a través de un algoritmo de descifrado con el valor shift como entrada, y luego emite el texto descifrado dentro del área 'Decriptado'.

7. Cifrar

El botón de cifrado se usa cuando el usuario desea cifrar el texto dentro del área 'Decriptar' basado en el valor shift insertado.

8. Bugs conocidos
Actualmente solo hay un bug conocido en el software. No hay posibilidad de scroll en las dos áreas de texto, lo que podría ser bastante frustrante si se trabaja con textos más grandes. Si encuentras algún error, por favor repórtalo en el hilo o envíalo por MP. Gracias.

Caesar cifra BETA - v0.70:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

VirusTotal:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Código fuente - v0.70:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Autor: Iyyel

Saludos
#76
Hola a todos,

Código: text

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class Main {

    private static final String _URL = "http://ddosthegame.com/index.php", _NOMBREUSUARIO = "/*nombreusuario*/", _CONTRASENA = "/*contrasena*/";

    static WebDriver driver;
    static WebElement element;

    public static final void imprimir(final String s)
    {
        System.out.println(s);
    }

    public static void main(String[] args)
    {
        imprimir("Conectando...");
        conectar(_URL);
    }

    public static void conectar(String url)
    {
        driver = new HtmlUnitDriver();
        driver.get(url);

        String usuarioEl = "nombreusuario", passEl = "contrasena";

        imprimir("Estableciendo datos de nombreusuario... (" + _NOMBREUSUARIO + ")");

        element = driver.findElement(By.name(usuarioEl));
        element.sendKeys(_NOMBREUSUARIO);

        imprimir("Estableciendo datos de la contraseña... (" + _CONTRASENA + ")");

        element = driver.findElement(By.name(passEl));
        element.sendKeys(_CONTRASENA);

        imprimir("Iniciando seción ");

        driver.findElement(By.name("login_today")).click();

        if (driver.getTitle().contains("- index"))
        {
            imprimir("Ha iniciado sesión correctamente!");
        }

        driver.get("http://ddosthegame.com/index.php?page=resolve");

        imprimir(driver.getTitle());

        driver.close();
    }

    public static void resolverBot(String nombreusuario, int cantidad)
    {
        imprimir("Resolviendo " + nombreusuario + " " + amount + "veces");
        for (int i = 0; i < 100; i++)
        {
            element = driver.findElement(By.name("userid"));   
            element.sendKeys(nombreusuario);
            driver.findElement(By.name("resolve_user")).click();
        }
    }


Saludos
#77
Java / Re:[Java] Class DH Tools 0.2
Octubre 18, 2019, 07:35:25 AM
Hola AXCESS,

la personalidad defectuosa de BigBear se ha tomado a tiempo completo. Yo ya señale muchas cosas que están mal con su código hasta el punto en que ni siquiera se compila, sin embargo, la respuesta que obtengo de ti es proporcionarme un perfil psicológico y por qué es inapropiado de mi parte brindarle a BigBear mejores formas de hacer las cosas.
Con toda seriedad, en lugar de hacer trucos psicológicos aquí, repasemos esto una vez más:
BigBear proporciona un código defectuoso, le sugiero que lo arregle señalandole MUCHOS errores que cometió. Si sientes que el está siendo agredido mentalmente, no lo está. La programación se trata de una cierta lógica, las cosas pueden ser 0 o 1. El código de BigBear es un 0. No tiene más sentido discutir esto contigo y cualquier programador que esté dispuesto a ayudar continuará señalando sus errores para que pueda aprender de ellos. Los errores en la programación no son exclusivamente de BigBear, todos los cometemos, pero es por eso que es bueno que otras personas revisen su código. Si no deseas que otras personas revisen el código de BigBear, que el no lo publique en línea y que el no lo publicite como una especie de cosa perfecta y maravillosa para hacer ciertas cosas, porque no lo es.


Saludos
#78
Front-end / JavaScript - Juego de fosforos
Octubre 18, 2019, 05:33:53 AM
Hola a todos,

la mayoría de ustedes saben bien de este juego. El javascript trata de quitar los
fósforos de tal manera que al final no se tenga que sacar el último. Con ello se
juega contra la computadora.

Al principio se fija cuantos fósforos se alistaran en el juego.

En cada jugada se puede quitar entre uno y tres maderas. Entonces el
javascript calcula los fósforos restantes y actualiza la visualización en la página
principal.

Naturalmente, al mismo tiempo, la computadora o el javascript también trata de
sacarles el último fósforo y con eso ganar el juego.

Para iniciar nuevamente el javascript tienen que actualizar la página principal en el
navegador.

Código:
Código: javascript

<!DOCTYPE html>
<html>
<head>
  <title>Ejemplo de javascript</title>
  <meta charset="UTF-8">
</head>
<body>
<!-- Presentado por javascripts-gratis.de -->
<script type='text/javascript'>
<!--
var obj1 = new Array(100), mc,mc1, cur_obj, total_sel, win = false, cpu_sel, ost, user_sel, game = true;

function RemoveElementByNum(num) {
document.getElementById("ch"+num).style.display = 'none';
document.getElementById("im"+num).style.display = 'none';
}

function RemoveCpuSel(num) {
del = num;
for ( i=0; i<mc1; i++ ) {
ename = document.getElementById("ch"+i);
if (del!=0) {
if (ename.style.display != 'none') {
ename.style.display = 'none';
document.getElementById("im"+i).style.display = 'none';
del-=1;
}
}

}
}

function GetClickedElement(){
total=0;
result=false;
for (i=0; i<mc1; i++) {
ename = document.getElementById("ch"+i);
if ((ename.style.display != 'none') && (ename.checked)) {
total++;
}
}
if (total>3) {
alert('Demasiados fosforos seleccionados. No puedes seleccionar mas de tres fosforos!');
result=false;
} else {
result=true;
}
document.getElementById("maderalog").value = "Tu tomas "+total+" pieza/s.";
total_sel=total;
user_sel=total;
return result;
}

function AI() {
if ( (mc>1) && (win==false) ) {
game = true;
}
if (game == true) {
if ( (mc-user_sel)==1 ) {
win=true;
game=false;
}
if ( (mc%4)!=1 ) {
ost=(mc-user_sel)%4;
if (ost==0) {
ost=4;
}
if (ost>1) {
cpu_sel=ost-1;
} else {
cpu_sel=Math.floor( (3*Math.random()) );
cpu_sel++;
if (cpu_sel>mc) {
cpu_sel=mc;
}
}
}
else {
cpu_sel=4-user_sel;
}
RemoveCpuSel(cpu_sel);
mc=mc-(cpu_sel+user_sel);
document.getElementById("maderalog").value='La computadora toma '+cpu_sel+' pieza/s.';
}
if ( (mc==1) || (mc<1)) {
game = false;
if (win == true) {
document.getElementById("maderalog1").style.visibility='hidden';
document.getElementById("maderalog").style.visibility='hidden';
document.getElementById("eliminar").style.visibility='hidden';
alert('Felicitaciones! Tu has ganado!!!!');
game=false;
} else {
document.getElementById("maderalog1").style.visibility='hidden';
document.getElementById("maderalog").style.visibility='hidden';
alert('Tu has perdido. La inteligencia artificial ha ganado!!!! JA - JA - JA!!!!');
game=false;
document.body.innerHTML = ""
}
}
document.getElementById("maderalog1").value = "Sobra/n " +mc+ " pieza/s";
}

function RemoveSelected(){
if ((total_sel!=0) && (total_sel<4)) {
user_sel=total_sel;
for (i=0; i<mc1; i++) {
ename = document.getElementById("ch"+i);
if ((ename.style.display != 'none') && ename.checked) {
RemoveElementByNum(i);
}
total_sel=0;
}
AI();
} else {
if (total_sel>3) {
alert("Demasiados fosforos seleccionados.");
} else {
alert('Nada seleccionado');
}
}
}


function initMadera() {
mc = prompt("Cantidad de fosforos?. La cantidad debe hallarse entre 7 y 50", "23");
         if (mc<7) mc=7;
         if (mc>50) mc=50;

mc1 = mc;
document.write('<center><table border="0" cellspacing="0" cellpadding="0"><tr>');
for (i=0; i<mc; i++) {
document.write('<td align="center"><div style="height: 70px; width: 7px; background-color: #C0C077;" name="im'+i+'" id="im'+i+'"><div style="height: 7px; width: 7px; background-color: #FF3300;"></div></div></td>');
obj1[i]=1;
}
document.write('</tr><tr>');
for (i=0; i<mc; i++) {
document.write('<td><input type="checkbox" onclick="GetClickedElement();" name="ch'+i+'" id="ch'+i+'" /></td>');
}
document.write('</tr></table>');
document.write('<br /><input type="button" value="Eliminar fosforos seleccionados" onclick="RemoveSelected();" id="eliminar" />');
document.write('<br /><br /><br /><br />');
document.write('<input type="text" name="maderalog" id="maderalog" size="30" /><br />');
document.write('<input type="text" name="maderalog1" id="maderalog1" size="30" /><br />');
document.write('</center>');
}
//-->
</script>
<script type="text/javascript">initMadera();</script>
<!-- Presentado por javascripts-gratis.de -->

</body>
</html>


Página web: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#79
Front-end / JavaScript - Asteroids
Octubre 16, 2019, 03:15:29 PM
Hola a todos,

algunos quizás conozcan todavía el juego Asteroids, que en los años 80 era bastante popular y uno de los primeros juegos de computadora.

Ahora se remodelo y se produjo este javascript, con el cual se puede lanzar tiros hacia la página actual. Para eso usen fácilmente el espacio. Ustedes pueden dirigir la astronave con las teclas del cursor. Los puntos les serán mostrados abajo a la derecha. Al principio se puede ver la astronave arriba a la izquierda.

Y ahora diviértanse destruyendo la página.

Le agregué unos botones para que puedan probar destruir elementos.

Los archivos se los dejo mediante un link ya que el espacio no alcanza para publicar los contenidos de los mismos.

Códigos: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Autor: Erik Rothoff Andersson

Saludos

PD.: Ustedes pueden restaurar todos los elementos recargando fácilmente la página con F5. Para finalizar el modo de juego presionen la telca ESC en el teclado!
#80
Front-end / JavaScript - Imagen fade in
Octubre 16, 2019, 03:12:22 PM
Hola a todos,

aqui podran ustedes dejar que una imagen de su elección se "haga grande"; e. s.: al
comienzo la imagen no es visible en sus páginas principales, pero crece dentro de
poco tiempo hacia el tamaño configurado.

En este javascript pueden configurar tres parametros: la anchura, la altura y la URL
de la imagen. Cuando la imagen se haya cargado en sus páginas principales, se hace
grande y se queda en sus páginas principales en el tamaño configurado.

Deje un imagen gif en el ejemplo.

Codigo:

Código: javascript

<!DOCTYPE html>
<html>
<head>
  <title>Ejemplo de javascript</title>
  <meta charset="UTF-8">
</head>
<body>
<!-- Presentado por javascripts-gratis.de -->
<script type='text/javascript'>
<!--
// Script by Freddus
// visit my site: http://www.friederklein.de

/////////////////////
var altura = 60;    // Configurar aqui la altura original de la imagen
var anchura = 468;  // Configurar aqui la anchura original de la imagen
var imagensita = "https://media.giphy.com/media/l41lLf17l7YCZ4Tjq/giphy.gif";  // Dirección hacia la imagen
/////////////////////
var contador=0;

function emboque(){
  var pixels;
  document.getElementById("miimagenzoom").height = document.getElementById("miimagenzoom").height+altura/20;
  document.getElementById("miimagenzoom").width = document.getElementById("miimagenzoom").width+anchura/20
  if (contador<20){
    setTimeout("emboque()",50);
  }// Fin del if
  contador++;
}//Fin del emboque

function initimagen() {
document.write('<div align="center">');
document.write('<img height="0" width="0" id="miimagenzoom" src="'+imagensita+'" onload="emboque();">');
document.write('</div>');
}
//-->
</script>
<script type="text/javascript">initimagen();</script>
<!-- Presentado por javascripts-gratis.de -->

</body>
</html>


Página web: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Autor: Freddus

Saludos