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ú

Temas - zellion

#1
Scripting / Recomendaciones de código Python
14 Diciembre 2021, 16:10 PM
Buenas tardes, estoy siguiendo el libro "Inventar con Python" donde te proponen varios juegos para hacer.

He terminado de hacer el juego del ahorcado y me gustaría que me dierais vuestra opinión o consejos para ir mejorando en este lenguaje.

Os dejo el código.

Código (python) [Seleccionar]
import random

def imagen(pos):
    imagenes = ['''A H O R C A D O
    +---+
    |
    |
    |
    |
    |
    =========''',

    '''A H O R C A D O
    +---+
    | |
    |
    |
    |
    |
    =========''',

    '''A H O R C A D O
    +---+
    | |
    | O
    |
    |
    |
    =========''',

    '''A H O R C A D O
    +---+
    | |
    | O
    | |
    |
    |
    =========''',

    '''A H O R C A D O
    +---+
    | |
    | O
    |/|
    |
    |
    =========''',

    '''A H O R C A D O
    +---+
    | |
    | O
    |/|\\
    |
    |
    =========''',

    '''A H O R C A D O
    +---+
    | |
    | O
    |/|\\
    |/
    |
    =========''',
    '''A H O R C A D O
    +---+
    | |
    | O
    |/|\\
    |/ \\
    |
    =========''']

    return imagenes[pos]

def replace_at(cadena, pos, char):
    pizarraLista = list(cadena)
    pizarraLista[pos] = char
    cadena = "".join(pizarraLista)
    return cadena

if __name__ == "__main__":
    palabraSecreta = ["mono", "caballo", "toro", "cerdo", "cabra"]
    continuar = True
    while continuar == True:

        #Inicializamos variables
        palabra = list(random.choice(palabraSecreta))
        letraSeleccionada = []
        intentos = 0
        pizarra = ""
        letrasIncorrectas = ""
        letrasCorrectas = 0

        for i in palabra:
            pizarra += "_"

        #Pintamos el tablero
        print(imagen(0))
        print("Letras incorrectas: ")
        print(pizarra)

        while intentos < 7:
            #Pedimos una letra al usuario y se verifica que no lo haya introducido previamente.
            letra = input(" \n \n Adivine una letra. ").lower()
            while letra in letraSeleccionada:
                letra = input("Esa letra ya se ha seleccionado. Elija otra letra. ").lower()
            letraSeleccionada.append(letra)

            #Se verifica si la última letra elegida se encuentra en la palabra.
            if letraSeleccionada[-1] in palabra:
                pos = 0
                #Buscamos y sustituimos en la palabra el valor _ por la letra correspondiente.
                for i in palabra:
                    if i == letraSeleccionada[-1]:
                        letrasCorrectas += 1
                        pizarra = replace_at(pizarra,pos,letraSeleccionada[-1])
                    pos += 1
                    print(imagen(intentos))
            else:
                intentos += 1
                print(imagen(intentos))
                letrasIncorrectas += letraSeleccionada[-1]
            #Refrescamos la imagen del tablero.
            print("Letras incorrectas: " + letrasIncorrectas)
            print(pizarra)

            if letrasCorrectas == len(palabra):
                print("Enhorabuena, has acertado todas las letras")
                break

        consultarContinuar = input("¿Quiere continuar? Presione Y o N. ")
        if consultarContinuar.upper() == "N":
            continuar = False



Sé que faltan validaciones para que introduzcan los datos esperados por el programa, pero me interesa más que funcionales se pueden de hacer de otra manera o más sencilla.

Muchas gracias.
#2
Buenas tardes chic@s, tengo un amigo que quiere montarte un ordenador por ahora hemos visto estas piezas.

Procesador: Ryzer 2600
Tarjeta gráfica: GTX 1650
RAM: Corsair vengeace DDR4 3200Mhz 16GB
Placa: Gigabyte b450 S2H
Almacenamiento: Kingston 480Gb
Fuente: Corsair 450W
Caja: nfortec lynx blanca

La idea jugar a juegos que no pidan muchos recursos. ¿Como lo veis?

Un saludo.
#3
Buenos días:

Me estoy pegando con un código javascript para intentar cambiar el color del fondo de una web cuando se pulse un botón, pero no consigo que se realice el cambio.

Ahora mismo tengo un fichero con el nombre "manifest.json" para crear el botón en la barra de herramientas con el siguiente código:

Código (html4strict) [Seleccionar]

{

 "description": "Demostrando botones de la barra de herramientas",
 "manifest_version": 2,
 "name": "Prueba",
 "version": "1.0",

 "background": {
   "scripts": ["prueba.js"]
 },

 "browser_action": {
   "default_icon": {
 "16": "icons/prueba-16.png",
     "32": "icons/prueba-32.png"
   }
 }
}


Al mismo nivel tengo otro fichero que se llama "prueba.js" con el siguiente código:

Código (javascript) [Seleccionar]

function openPage() {
 browser.tabs.create({
   url: "https://www.google.es"
 });
 document.body.style.backgroundColor = "yellow";
}

browser.browserAction.onClicked.addListener(openPage);


La idea es que cuando pulse el botón de la barra de herramientas, abra el buscador de google con el fondo amarillo en una nueva pestaña, pero se realiza todo menos el background. ¿Sabéis a qué puede deberse?

He probado también con un "document.getElementById("userlogin").style.background" por pintar un campo concreto, pero se sigue quedando con el fondo blanco.

Muchas gracias.

Un saludo.
#4
Buenas noches:

Os explico un poco para poneros en contexto porque la pregunta del título es un poco general. El tema que voy a acceder a una web que no he creado yo, por ejemplo la web "www.midominio.html".

Esta página web tiene un formulario con una serie de campos que para guardar en base de datos se tiene que pulsar un botón de html. Mi idea es crear un complemento con javascript para que al pulsar un botón, realice unas serie de validaciones en los campos del formulario para identificar cuales no están correctamente rellenados.

El tema es que estado mirando por Internet sobre como leer el código fuente del html y los valores insertados por los usuarios, pero no he encontrado algo que me ayudara o no he sabido buscar bien.

¿Sabéis de alguna referencia dónde se explique lo que necesito o documentación con las cosas que debería de aprender para hacer el script? Ya que seguramente me falten conocimientos técnicos básico de javascript y de páginas web.

Muchas gracias por adelantado.

Un saludo.
#5
Scripting / Visual Studio Code
16 Agosto 2019, 15:23 PM
Buenas tardes a tod@s:

He estado buscando información por internet, pero no encuentro lo que busco asique os pido ayudar a ver si vosotros los sabéls.

Estoy aprendiendo Python utilizando el IDE Visual Studio Code para ir haciendo ejercicios simples para ir pillando la sintaxis del programa y sus utilidades. El tema es quería empezar a hacer programas de entorno gráfico, es decir, con sus botones, cajas de textbox, etc.

Según he estado viendo hay un módulo llamado tkinter que se utiliza para crear ventanas y cosas gráficas pero todo es por código. ¿Sabéis algun módulo o extensión del programa Visual Studio Code que te facilite la programación de la presentación? Algo en plan, cojo un botón y lo arrastro creando el código automáticamente.

Hace tiempo utilizaba el programa de Visual Studio con C# y tenía esa funcionalidad, pero no se si existe para el IDE que estoy utilizando ahora mismo.

Muchas gracias por adelantado.

Un saludo.

#6
Buenos días:

Hace como un mes me compré un portátil nuevo con Windows 10, el tema es que al intentar logarme en el foro no me deja.

El problema que tengo es que introduzco el usuario y la contraseña, pero al pulsar sobre el botón "Ingresar", este botón no hace nada por más que lo pulse. Por otro lado, si intento marcar la check "Recordar siempre Usuario/Contraseña" tampoco hace nada, es decir, no se quedar marcada la check.

La incidencia se produce con el navegador Firefox, ya que con el navegador Edge sí que puedo acceder sin problemas desde el mismo portatil, pero prefiero navegar con el zorro rojo. He probado en otro ordenador y me puedo logar sin problemas con Firefox.

He estado buscando, pero no se me ocurre que puede estar pasando. ¿Hay alguna configuración en el navegador del portátil que me pudiera estar afectando?

Muchas gracias por adelantado.

Un saludo.
#7
Buenos días:

Os explico un poco el problema que estoy teniendo con un Samsung Galaxy III. Debido a una "muerte súbita" del móvil por el problema con el chip de memoria eMMC, el móvil se ha quedado con la pantalla blanca y líneas negras.

He probado a entrar en modo "Recovery" pero no me deja porque sale también la pantalla en blanco, ahora mismo el móvil solo me permite acceder al modo "Downloading". He visto por internet que hay una posible solución pero tendría que instalar el último firmware perdiendo todos los datos guardados en la memoria interna.

Lo que quiero es acceder a los datos del móvil desde el ordenador para recuperar esos datos antes de instalar un nuevo firmware pero al conectarlo al ordenador por usb no me lo reconoce. No puedo ponerlo en modo depuración ni en modo almacenamiento porque solo me funciona el modo "Downloading" o por lo menos no lo he conseguido. He intentado desinstalar e instalando los controladores, intentar acceder al móvil desde un sistema operativo Windows y un Ubuntu, agregar los dispositivos, etc.

¿Se os ocurre alguna forma de sacar los datos del móvil? He pensado en crear una partición desde el programa Odin, como si fuera un ordenador con dos sistemas operativos pero no se si es posible hacer eso.

Comentadme si sabéis de algún programa o alguna forma de acceder al contenido del móvil sin que este no tenga activado el modo depuración o el modo almacenamiento.

Muchas gracias.

Un saludo.
#8
Seguridad / Libro de análisis forense
24 Febrero 2015, 14:35 PM
Buenas, estoy intentando aprender cosillas de análisis forense. He visto este libro "Análisis Forense Digital en Entornos Windows." es de la editorial 0xWord.

¿Lo habéis leído o sabéis si está bien? Si sabéis de otros libros/blog/etc... por favor posteadlo, en el foro he visto un par de link pero no funcionan ya :/. Gracias.

Un saludo.
#9
Hardware / Nuevo pc a piezas
21 Abril 2014, 16:57 PM
Buenas, quiero montarme un pc por piezas pero como no tengo mucha idea vengo a que me aconsejeis. El ordenador principalmente lo utilizaré para jugar y para programar.

Os dejo esta lista a ver que os parece:

- KFA2 GeForce GTX 660 Ti EX OC 2GB
http://www.amazon.es/KFA2-GeForce-GTX-660-2GB/dp/B008ZX2O8K/ref=sr_1_1?ie=UTF8&qid=1398091019&sr=8-1&keywords=KFA2+GeForce+GTX+660+Ti+EX+OC+2GB

- NOX NXS750 Fuente de alimentación
http://www.amazon.es/NOX-NXS750-unidad-funte-alimentaci%C3%B3n/dp/B00I3E12X4/ref=sr_1_1?ie=UTF8&qid=1398091115&sr=8-1&keywords=NOX+NXS750

- Seagate Barracuda - Disco duro interno de 1 TB (SATA III, 7200 RPM, 3.5")
http://www.amazon.es/Seagate-Barracuda-Disco-duro-interno/dp/B006BRBSE8/ref=sr_1_sc_1?ie=UTF8&qid=1398091174&sr=8-1-spell&keywords=Seagate+barracura

- Gigabyte GA-990FXA-UD3 - Placa base
http://www.amazon.es/Gigabyte-GA-990FXA-UD3-Placa-socket-hasta/dp/B00545BZOG/ref=sr_1_1?ie=UTF8&qid=1398091284&sr=8-1&keywords=Gigabyte+GA-990FXA-UD3

- Amd FX 8350 - Procesador
http://www.amazon.es/Amd-8350-Procesador-procesador-operativo/dp/B009O7YUF6/ref=sr_1_1?ie=UTF8&qid=1398091340&sr=8-1&keywords=AMD+FX+8350

- Kingston HyperX KHX1600C9D3K2/8GX - Memoria RAM de 8 GB
http://www.amazon.es/Kingston-HyperX-KHX1600C9D3K2-8GX-PC3-12800/dp/B0037TO5C0/ref=sr_1_2?ie=UTF8&qid=1398091393&sr=8-2&keywords=kingston+khx1600c9d3b14g

- B-MOVE Caja Semitorre ATX Kairós 500w Negra
http://www.amazon.es/gp/product/B008FZOTLI/ref=oh_details_o07_s00_i00?ie=UTF8&psc=1

En total sale a: 732.41€

Gracias.

Un saludo.
#10
Buenas chic@s, acabo de ver un artículo donde hay una serie de páginas para aprender a programar y tiene buena pinta.

Les voy a echar un vistazo y os comento. Si alguno ya ha estado en alguna de estas páginas podría poner que les parece y como están de contenido, os copio el texto.

Codecademy

Sin duda, de las más populares en este sector. Tiene un agradable diseño, es muy interactiva y se basa en ciertas 'medallas' que nos dan según avanzamos de nivel con éxito. Está dividido en lecciones de unos 30 ejercicios guiados, con una dificultad bien graduada que va creciendo poco a poco.

Al principio ofrecía lenguajes como HTML, javascript, y CSS, es decir, puramente web. Pero ahora tiene cursos de otros lenguajes como Python. Si lo que quieres es lo contrario, convertirte en profesor, la plataforma también nos da las herramientas para ello.

Coursera

Para mí, la mejor. En su interior se encuentran cursos de prestigiosas universidades de todo el mundo como Stanford o Princeton. En Coursera cubren un amplio abanico de materias, entre ellas la programación e ingeniería de software.

Normalmente, los cursos tienen vídeos y algunos hasta profesores reales detrás de la pantalla a los que preguntar tus dudas y que realizan exámenes. Los cursos son gratuitos, aunque exigen cierto grado de seriedad y continuidad. También podrás entrar a foros con los que charlar con compañeros que estén en el mismo curso que tú.

Khan Academy

Es parecida en cierta forma a Coursera, con muchos temas de estudios, como matemáticas, ciencias, economía, etc. También tiene miles de vídeos (más de 4.000 ahora mismo) y estadísticas personales del tiempo que gastamos en estas 'clases virtuales' y con medallas al estilo Codeacademy, con los que desbloqueas logros según vas aprendiendo.

Me gustan mucho sus vídeos de física y programación. Y además, puedes acceder a la plataforma desde su app para iPad. Muchos de los vídeos (casi todos) cuentan con subtítulos, por lo que te será fácil seguirlos si no dominas el inglés bien. Si te haces experto en alguna materia, puedes convertirte en tutor de otros alumnos.

Programmr

Esta plataforma da un paso más allá en la programación, y está orientada a gente que ya tenga algo de base. Es, por tanto, un sitio para mejorar y aprender nuevos conceptos, pero para personas que ya saben programar. El interfaz es muy simple (demasiado diría yo), pero incluye toda la potencia para programar un montón de lenguajes distintos: JAVA, C++, Python, C#, PHP, Ruby, Android, iOs, Ajax, SQL, HTML/CSS...

Me gusta bastante la posibilidad de crear pequeños scripts o programas, llamados projects y poder compartirlos con otros usuarios.

Code School

El nombre lo deja bien claro, esta 'escuela del código' tiene un lema, 'Learn by Doing', y es que está basada en la práctica pura y dura. Tiene lo que denomina diferentes caminos (lenguajes): Ruby, javascript, HTML/CSS e iOS como fundamentales. Aunque también podremos aprender sobre Git, jQuery y otros.

Los cursos están estructurados en formato de videojuego con varios niveles y diferentes ejercicios que el usuario debe ir superando para seguir con su formación.

CodeCombat

Por último, pero no por ello el peor, uno de los más divertidos. CodeCombat ha surgido este mismo año para ayudarnos en la programación javascript, uno de los lenguajes en auge últimamente.

Su interfaz e idea son geniales. Nos proponen un pequeño juego en el que vamos moviendo a nuestro guerrero y pasando por cientos de escenarios en los que iremos descubriendo todas posibilidades de este lenguaje, y aprendiendo casi sin darnos cuenta. Muy recomendable.

Fuente: http://www.gonzoo.com/starz/story/seis-formas-divertidas-de-aprender-a-programar-1040/
#11
GNU/Linux / ¿¿Problemas con el repositorio??
20 Febrero 2013, 00:25 AM
Buenas, me acabo de instalar CentOS 6 en mi portátil y estoy trasteando un poco porque no tengo muchas experiencia en entornos linux (Probé ubuntu durante un mes y lo acabe desinstalando porque no lo utilizaba xD).

La cuestión es que estoy intentando instalar el editor "Bluefish" a través de la terminal, pero al meter este comando:

yum list *bluefish*

Me devuelve esto:

Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: sunsite.rediris.es
* extras: sunsite.rediris.es
* updates: sunsite.rediris.es
Error: No matching Packages to list


Es como si no lo encontrará en el repositorio ¿no? Eso o el comando que meto esta mal escrito xD, lo dicho soy novato y nunca es tarde para aprender cosas nuevas. Espero que podáis ayudarme.

Gracias.

Un saludo.
#13
Hola chic@s, tengo hecha una función que borra lo que no debe. Os explico que debería de hacer: Es una función que borra un registro de una base de datos (Mysql) y tiene mas registro que dependa de ella, también se tendrían que borrar.

Pero lo que sucede es que se cepilla toda la tabla, estuve depurando el programa y no veo ningún fallo, haber si vosotros podéis verlo.

Esta es la tabla:

CREATE TABLE snd_familia (
id_familia int(4) auto_increment primary key,
nombre_familia varchar(15) NOT NULL,
id_padre int(4) NOT NULL);

El campo ip_padre se relaciona con el campo id_familia, sacando la información de este último. Yo lo haría con dos tablas, pero tengo que hacerla en una.

Aqui os pongo las funciones que utilizo:

      function buscarHijo($id_familia)
      {
         try
         {
            global $config;
            $db = new ConexionBD();
            $db->conectar();
            
            $query = sprintf("select * from %sfamilia where id_padre = ('%s')",
            mysql_real_escape_string($config['tbl_prefix']),
            mysql_real_escape_string($id_familia));
            $sql = mysql_query($query);
            
            while($row = mysql_fetch_assoc($sql))
            {
               $datos[] = $row;
            }                     
            return $datos;         
            $db->desconectar();
         }catch(Exception $e){
            echo "Ocurrio un error: " . mysql_error();
         }
      }

      function borrar($id_familia)
      {
         try{
            global $config;
            $db = new ConexionBD();
            $db->conectar();            
               $query=sprintf("DELETE FROM %sfamilia WHERE id_familia= ('%s')",
               mysql_real_escape_string($config['tbl_prefix']),
               mysql_real_escape_string($id_familia));
               mysql_query($query);
               $db->desconectar();            
         }catch(Exception $e){
            echo "Ocurrio un error: " . mysql_error();
            }
      }

      function borrarRegistro($id)
      {      
         $datos = $this->buscarHijo($id);

         $this->borrar($id);
         
         $total = count($datos);
         for($i = 0;$i<=$total;$i++)
         {
            $this->borrar($datos[$i][id_familia]);
            if(isset($datos))
            {
               $this->borrado($datos[$i][id_familia]);
            }
         }                  
      }  

Gracias por leer el tema y si algo no se entiende o veis como se puede mejorar, ponedlo por favor. Que llevo poco con este lenguaje jeje.

Un saludo