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


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 [343] 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 ... 436
3421  Foros Generales / Noticias / Re: El gobierno de Venezuela quiere tener localizado a todos los mineros de Bitcoin en: 19 Diciembre 2017, 15:52 pm
Estos jerifaltes como de costumbre con sus tonterías sin sentido.

El único impuesto razonablemente exigible es que si se benefician de un subsidio por el consumo energético, por el mero hecho de minar biutcoin, les exigieran el pago completo del consumo energético, asumiendo que no es un gasto para la 'supervivencia' per sé del núcleo familiar.

Querer tener un listado de 'mineros de bitcoin', no es más legal que querer tener un listadod e todas las personas que cada día pronuncian la palabra 'veremos' (o cualquier otra), una solemne idiotez propia como no, de gobiernos totalitarios repletos de inútiles idealistas...
3422  Informática / Software / Re: Recuperar contraseña archivos .RAR en: 17 Diciembre 2017, 17:15 pm
Puedes intentar algo simple...

A menudo algunas web publican/publicaban contenido con contraseña, pero la contraseña solía ser trivial en esos casos... del tipo: la contraseña es el nombre de la web, bien que no exactamente, espacios en blanco, puntos, etc... podrían no ir, así como  no respetar las mayúsculas (todo en minúculas o viceversa)... en casos m
ás extraños, he llegado a ver que de un año a otro, la contraseña era la misma, excepto porque al final la contraseña acababa en los caracteres del año en que se estaba.

...ergo, yo intentaría esto mínimo: Si sabes como se llama la web de la que provenía, prueba con contraseñas consistiendo en variaciones del nombre de la web... al modo que te he comentado.
3423  Sistemas Operativos / Windows / Re: Nuevo Icono en la barra de inicio. en: 17 Diciembre 2017, 17:09 pm
Ese es el icono típico de shell.

De hecho, cuando abres una ventana de comandos (cmd), solía ser el símbolo que aparece a la izquierda a mo do de indicador de 'esperando entrada de datos' (se podía cambiar, por supuesto).
Powershell, es por decirlo de modo simple una versión muchísimo más potente del vetusto cmd (a su vez sucesor del command.com).

Para más inri, ahí mismo te muestra la opción: "Desanclar de la barra de tareas", ¿luego... qué entiendes de lo que lees?.

3424  Programación / Programación C/C++ / Re: matriz de movimiento del caballo en c++ en: 14 Diciembre 2017, 17:34 pm
Yo veo más interesante que una función devuelve un valor indicando cuales de las 8 posibles movimientos del caballo son válidas.

Se pasa a la función las cordenadas del caballo y el estado del tablero.
Con estado del tablero, se indica que contiene uno de estos 3 tipos de valores (en cada casilla del array que lo mantiene):
---: =0; Casilla no ocupada.
---: >0; Casillas ocupadas por el contrincante (el valor define que figura es).
---: <0; Casillas ocupadas por tus propias figuras (el valor define que figura es).

Luego, como el caballo tiene 8 posibles movimientos, usaremos un byte como respuesta:
- Cada bit a 1 indica movimiento posible (casilla vacía o figura del enemigo que se puede comer).
- Cada bit a 0, movimiento no posible (esto es, fuera del tablero u ocupada por tus propias figuras)

Código:
// Esta funcion devuelve un byte indicando en cada bit si la casilla correspondiente a dicho bit puede o no saltar el caballo a ella.
// Si el movimiento es posible y la casilla está vacía u ocupada por el enemigo, se pone el bit correspondiente a 1.
byte = funcion PosicionesValidas(entero x, entero y, array tablero() )
    byte n
    
    ' bit 0 y 5 (porque ambos comparten el x-1)
    Si (x-1) >= 0) luego
        Si (y-2) >= 0) luego // bit 0            
            Si Tablero(x-1, y-2) >= 0 luego n = 1 //previamente valía 0.
        fin si
        Si (y+2) >=0) luego //bit 5
            Si Tablero(x-1, y+2) >= 0 luego n= (n or 32)
        Fin si
    Fin si

    ' bit 1 y 4 (porque ambos comparten el x+1)
    Si (x+1) >= 0) luego
        Si (y-2) >= 0) luego // bit 1            
            Si Tablero(x+1, y-2) >= 0 luego n=(n or 2)
        fin si
        Si (y+2) >=0) luego //bit 4
            Si Tablero(x+1, y+2) >= 0 luego n= (n or 16)
        Fin si
    Fin si
// -----------------------------
     ' bit 6 y 7 (porque ambos comparten el x-2)
    Si (x-2) >= 0) luego
        Si (y-1) >= 0) luego // bit 6            
            Si Tablero(x-2, y-1) >= 0 luego n=(n or 64)
        fin si
        Si (y+1) >=0) luego //bit 7
            Si Tablero(x-2, y+1) >= 0 luego n= (n or 128)
        Fin si
    Fin si

    ' bit 2 y 3 (porque ambos comparten el x+2)
    Si (x+2) >= 0) luego
        Si (y-1) >= 0) luego // bit 2            
            Si Tablero(x+2, y-1) >= 0 luego n= (n or 4)
        fin si
        Si (y+1) >=0) luego //bit 3
            Si Tablero(x+2, y+1) >= 0 luego n= (n or 8)
        Fin si
    Fin si

    devolver n
fin funcion

- Otra función debiera admitir a qué cordenadas refiere un bit 'n' del byte (que devuelve la función anterior) dada la posición actual del caballo.
- Se añade además  a la función otro parámetro; el array del tablero, y así la función retorna un byte, que es indicadtivo de si se mueve a dicha casilla y si además 'se come' una ficha del enemigo, ó si no es posible moverse a ella...  
Código:
// Una enumeración para la devolución de la función así resulta útil saber que pasó.
//  igualmente bastaría un sByte y acordar que este
enumeracion PosibilidadesDeMovimiento
     Movimiento_No_Mueve = -1 //No se puede mover a esa posición (están tus figuras o apunta fuera del tablero)
     Movimiento_Vacio = 0 //se posiciona en OTRA casilla vacía, no pasa nada más.
     // Al comer se podría prescindir de qué figura come (y en todos estos casos devolver simplemente 1) aunque resulta más interesante así...
     // Estos valores deberían coincidir con los valores asignados a las figuras (en otra enumeración, para el tablero)
     Movimiento_Come1 = 1  // come a un peón
     Movimiento_Come2 = 2  //come a una torre
     Movimiento_Come3 = 3  //come a un caballo
     Movimiento_Come4 = 4  //come a un alfil
     Movimiento_Come5 = 5  // Come a la reina.
     Movimiento_Come6 = 6  //  Mata al rey, fin de partida (el rey no tiene movimientos)
fin enumeracion

Y ahora que queda claramente definida lo que tiene que hace rla función su pseudocódigo resultante:
- Posibles es el byte que se devolvió en la función anterior, y bitposición la elección de movimiento del jugador.
- 'x' e 'y' son las cordenadas actuales y a la devolución contendrán las cordenadas de destino del caballo (solo si fue posible moverse).
Código:
PosibilidadesDeMovimiento = funcion PosicionarCaballoSobre(byte x, byte y, byte Posibles, byte BitPosicion, array sByte Tablero() ) 
    sbyte dx, dy
    PosibilidadesDeMovimiento n

    Si ((2^BitPosicion) and posibles) luego  // ¿realmente ese bit está a uno (casilla aceptable donde mover el caballo) ?
        Seleccionar BitPosicion
            caso 0
                dx = x-1
                dy = y-2          
            caso 1
                dx = x+1
                dy = y-2
            caso 2
                ...  // a rellenar por ti...
            caso 3
                ...
            caso 4
                ...
            caso 5
                ...
            caso 6
                ...
            caso 7
                ...
        Fin seleccionar
  
        // no hace falta comprobar dx y dy dentro del tablero, ya que eso se comprobó en la función anterior y se garantiza al inicio de esta función...
        n = Tablero(dx, dy)
        Si (n>0) luego
            x = dx
            y = dy
            devolver n
        Osi (n=0)
            devolver n
        fin si
    Fin si

    devolver -1
fin funcion


Luego el código de las llamadas sería algo como:
Código:
array sByte tablero(0 a 7, 0 a 7)  //el array del estado del tablero está definidio a nivel del módulo/clase

Funcion JugarCaballo(byte x, byte y)  //x, y son las cordenadas actuales del caballo.
    sByte n, p
    posibilidadesDeMovimiento j
    byte dx, dy

    n = PosicionesValidas(x, y, tablero() )
    Si (n> 0) luego //hay posiciones válidas para el caballo desde donde está actualmente
        dx= x
        dy = y
        Hacer
            mensajeAlJugador ""Elige una de los 8 posibles movimeintos del caballo (un valor en el rango: (0/7)" con imagen adjunta de las psoiciones que son 0-7)
            p = JugadorEligePosicion // para el caballo (en el rango 0-7
            j = PosicionarCaballoSobre(x, y, n, p, tablero() )
        Repetir mientras (j<0)

        Si (j>0)
            ComerFichaEnemiga(x, y, j) // allí se ve si la ficha comida es el rey en cuyo caso acaba la partida.
        Fin si
        MoverCaballoA(x, y)

        // Actualizar estado del tablero:
        tablero(dx, dy) = 0 // casilla libre, caballo retirado de ahí.
        tablero(x, y) = -3 // 'nuestro' caballo en dicha posición (hbiera o no una ficha del enemigo en ella).
    fin si
fin funcion
   

Los bits que definen la posición del movimiento serían así:
3425  Programación / Programación C/C++ / Re: Eliminar numero negativos de una matriz ( sin librerías) en: 14 Diciembre 2017, 14:30 pm
Ineficiente. La solución que pones usa dos bucles con cada negativo hallado, desplazas todo el contenido del array por encima de él, cada vez.

La solución que yo te ofrecí (que puedes ponerla en una función o no), solo requiere recorrer una única vez el bucle, luego necesita 'k-n' comparaciones y 'n' asginaciones. Incluso para poner a 0 los valores finales en el array (que entonces las asginaciones serían n+ (k-n)) ). Siendo k el tamaño del array y n los positivos encontrados (y k-n los negativos).
3426  Foros Generales / Noticias / Re: ¿Es malo apagar el ordenador del botón? en: 14 Diciembre 2017, 03:30 am
Es que debería ser así...
Los equipos deberían tener una batería pequeña y potente de tal modo que cuando detecte una caída de energía significativa, opere con la batería y mediando con el S.O. para entrar en estado de hibernación... ...más o menos una ayuda como los SAI, pero integrada en el equipo y con carga suficiente y al único propósito de hibernar el equipo cuando falte el suministro eléctrico.
3427  Foros Generales / Noticias / Re: Las páginas de streaming pirata como Openload minan criptomonedas cuando las ... en: 14 Diciembre 2017, 02:58 am
Sin duda la minería sobre tu equipo, sin tu permiso va en aumento... una nueva lacra de internet que crece sin control y ante lo cual los gobiernos callan como perros con bozal.

es más que probable que en lo sucesivo surjan webs, sin más intención que aprovecharse de la potencia de cálculo del os equipos de los usuarios que visiten sus páginas...

El mundo cada vez da más asco, está lleno de vampiros despiadados y nadie hace nada al respecto...
3428  Foros Generales / Noticias / Re: Hay gente hipotecando su casa para comprar Bitcoins en: 14 Diciembre 2017, 02:52 am
Curioso. Y yo que rechacé gastarme unos miles de euros cuando estaba entre 12 y 20 euros... y ahora hay gente que vende su casa para comprar un puñado de bitcoins a cuánto ¿miles de euros el bitcoin?.

El bitcoin, sería sensato que cualquiera lo comprara cuando apenas tenía valor, te gastabas unos cientos  o miles de euros y si salía mal, no sería el fin del mundo... solo una pequeña mala inversión. Arriesgar tu casa y todos tus ahorros, sin entender nada sobre el tema, es una locura... cuánto más va a seguir subiendo?. Todo lo que se pueda seguir manipulando.

Bitcoin, se enfrenta a un gran problema, el mismo problema que trataba de resolver... la manipulación del precio. Lo único que ha cambiado son las manos que lo manipulan... así que para mi, cada vez va perdiendo más crédito siguiendo por ese camino.

Y estoy de acuerdo con Orubatosu... es absurdo el gasto energético. Minar bitcoins, sale indudablemente mucho más caro que minar oro, pero el oro, aparte de moneda, y su uso en joyería, tiene uso industrial... el bitcoin, no deja de ser 'humo', si se achicharraran todos los ordenadores del planeta, sería la quiebra de todos los portadores de bitcoin...

3429  Programación / Programación C/C++ / Re: Eliminar numero negativos de una matriz ( sin librerías) en: 14 Diciembre 2017, 02:19 am
Simplemente debes generar un bucle, con dos índices, el del propio bucle (avance) y el de colocación.

Código:
entero k, n

bucle para k desde 0 hasta array.length
    Si (array(k)>=0) luego
        array(n) = array(k)
        n += 1
    Fin si
fin bucle

k es el índice de avance del bucle.
n es el índice de escritura sobre el array. Éste deja de avanzar cuando encuentra un número negativo.

Es algo que si tomas un papel y lápiz y lo haces paso a paso a mano, lo sacas...

Al final del bucle quedarán (array.length - n) ítems sin alterar, que equivale a la cuenta de números negativos encontrados, tu sabrás que se te pide que hagas con ellos, quizás simplemente ponerlos a 0:
Código:
Bucle para k desde n hasta array.length
    Array(k) = 0
fin bucle
3430  Programación / Programación Visual Basic / Re: Ayuda Launcher en: 13 Diciembre 2017, 13:54 pm
jejeje... pués si, Elektro, entendí mal... con L2.exe suena simplemente a nombre de cualquier ejecutable que uno ha hecho... y que parece (parecía) indicar que subiría a alguna parte disponible para otros usuarios.

Creo que no leí el párrafo previo donde lo aclara bien...
Páginas: 1 ... 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 [343] 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 ... 436
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines