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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: 1 [2] 3
11  Programación / Scripting / [Python] ctypes, SetConsoleTextAttribute... en: 11 Septiembre 2011, 20:01 pm
 Hola gente, estoy intentando entender por qué el siguiente código no me da resultado, ni error siquiera.
 Estyo realizando mi propio módulo de funciones "útiles", aunque de novato, y una de ellas es para cambiar el fondo y color de un texto. Mi módulo es llama "jazzer", y dentro de este estoy implementando funciones de marquesina, efectos de texto (en consola), etc. El módulo contiene definidas algunas variables que hacen referencia a los colores y sus valores correspondientes. Cada una tiene un prefijo (l o d) que hace referencia a la intensidad (l para light o brillante, y d para dark u oscuro), y el nombre del color. Dejo el código (Sacando lo que no intefiere), y posteriormente mi duda:

Código:
import ctypes
#-- DATOS --#
#--Constantes de colores--
#--Variantes oscuras
BLACK   ='0'
dBLUE   ='1'
dGREEN  ='2'
dCYAN   ='3'
dRED    ='4'
dPURPLE ='5'
dYELLOW ='6'
dWHITE  ='7'
dGREY   ='8'
#--Variantes claras
lBLUE   ='9'
lGREEN  ='A'
lCYAN   ='B'
lRED    ='C'
lPURPLE ='D'
lYELLOW ='E'
lWHITE  ='F'

#-Manejo de colores en consola
def hValColor(Color):
        #WinAPI (kernel32.dll). GetStdHandle
        STD_INPUT_HANDLE  = -10
        STD_OUTPUT_HANDLE = -11
        STD_ERROR_HANDLE  = -12
        std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
        bool = ctypes.windll.kernel32.SetConsoleTextAttribute(std_out_handle, Color)
        return bool

def cValColor(FOREGROUND, BACKGROUND):
        Color = '0x'+FOREGROUND+BACKGROUND
        hValColor(Color)

 Verán, uso dos funciones para definir el color hValColor y cValColor. La diferencia radica en que hValColor recibe un parámetro hexadecimal correspondiente al color (0xA por ejemplo), mientras que la otra recibe los colores en el formato <prefijo><Color>, (lBLUE por ejemplo). Esto lo hize pensando en un usuario que desconozca el código hexadecimal, de modo que pueda especificar el color de otra forma.
 SetConsoleTextAttribute admite un código hexadecimal sea o no sea string, hize la prueba pasando un parámetro cadena ('0xA') y otro hex (0xA). Ambos dieron resultado.
 Ahora bien, implementando eso en cValColor, en teoría debería concatenar 0x, FOREGROUND y BACKGROUND, almacenarlas en Color y pasarlas a hValColor, y este cambiaría el color. Explico mejor:

Código:
from jazzer import *
cValColor(lBLUE, dGREEN)

 En cValColor se reemplazaría lBLUE por su cadena correspondiente; pasando lo mismo con dGREEN, y luego, concatenando ambos a "'0x". El tema es que el ejecutarse esto, el color sigue igual, y no devuelve ningún error. ¿Por qué? Es decir, SetConsoleTextAttributes SEGÚN LO QUE PROBÉ puede recibir un hexadecimal en cadena o no, y da el mismo resultado. Acá, el traspaso debería ser una cadena, y sin embargo, no da error ni resultado.
 Cualquier ayuda me serviría. DEsde ya muchas gracias si se tomaron el tiempo de leerlo.

Un abrazo.
12  Foros Generales / Dudas Generales / Ocultar la IP (NO BUSCO HACERLO, busco entenderlo) en: 11 Septiembre 2011, 19:41 pm
 Antes que nada, quisiera dejar en claro que mi intención no es saber cómo, si no, el por qué.
Buscando en Google sólo doy con links que me dicen que programa usar, me hablan del USO de proxys y demás. Mi intención va mas allá de eso, y quisiera saber por donde debería empezar para poder entenderlo. Es decir, vi el programa Cyberghost, para navegar oculto. Lo que me gustaría saber es qué conceptos se deben entender para entender el funcionamiento del programa, por ejemplo.
¿Qué temas debo leer para comenzar a entender como funciona esto? (Mi objetivo es, algún día, poder hacer un programa que me permite navegar oculto (En Python jeje). Pero necesito entender primero).
 Por favor, no me den códigos de ejemplo, ni nada. Sólo conceptos que debería buscar, ya que no se por dónde empezar. No importa si son temas largos, sólo quiero aprender. Y disculpen si esta pregunta es una peteada, realmente estoy iniciado hace poco en este tema.

 Un abrazo, y gracias de antemano. Y también disculpen si me equivoqué de sección... Je...
13  Foros Generales / Foro Libre / Futuro y ambiente laboral de Python (Argentina) en: 7 Septiembre 2011, 23:38 pm
 Alguien que tenga experiencia o conocimientos acerca del ámbito laboral en lo que a desarrollo de software concierne, Python es buen visto? Es usado hoy día por empresas EN ARGENTINA? (Se que Google y la NASA lo usan).
 Y si no es así, qué lenguajes son mas buscados? Además de que imagino a C# y Java, junto con lenguajes WEB...
 Y alguien que sepa mas que yo: ¿Python, qué futuro tiene? ¿Incierto o tiene un futuro exitoso? Se la potencia, alcanze y posiblidad que da Python, pero también se que Java está respaldada por SUN MS, .net por Microsoft, y que eso ayuda a definir el futuro de los lenguajes.
 Leí en Google, muchos foros, y demás, algunos eran temas muy viejos, otros no me parecieron convicentes. ¿Me podrían dar una mano? Desde ya, es pura intriga, y ganas de conocer. Python me parece un exelente lenguaje, y lo voy a seguir aprendiendo independientemente del futuro que tenga. Sólamente desearía tener una idea.
  Muchas gracias de antemano. Saludos.
14  Programación / Scripting / [Python]Sumar valor numérico de cada carácter de una cadena(ASCII). en: 3 Septiembre 2011, 23:15 pm
 Estoy intentando hacer una función en la cuál se le pasa una cadena como parámetro, y obtiene el valor numérico de cada carácter, y los suma todos. Intenté con for y while, pero no le encuentro la vuelta. Alguien me podría decir si hay una función que haga esto?
          
edit: Que idiotez la mía olvidé decir que trabajo en Python.
15  Programación / Scripting / (Python)duda sobre color de texto y captura de teclas. en: 2 Septiembre 2011, 00:42 am
Qué tal gente, espero que me puedan ayudar. Leyendo en la documentación de Python no encontré módulo alguno que capture las teclas (Se que hay pero no son oficiales). ¿Hay alguna forma de poder capturar teclas sin bajar ningún módulo ni nada? Sólamente por curiosidad. No hace falta que me den links directos ni nada, nada mas díganme si lo hay, porque la verdad no lo encuentro u.u
 
 Busqué si hay algo estándar de PYthon, pero no encuentro. Si se que está termcolor, pero no me funciona en Windows... ¿Tengo que hacerlo por mi mismo? ¿De qué tengo que informarme? Es que quiero darle algo mas de vida a la consola.
 Muchas gracias de antemano.ç

EDIT:
 Ahora encontré una WEB que no me cargaba, habla sobre ctypes. Y da ejemplo de cambio de color. Por lo que veo llama a las APIs de Windows... Me imagino que con esto me va a ser suficiente... Igual, si me pueden orientar un poco mas lo agradecería... :)

EDIT2:
 Acá logré avanzar algo, mirando este código:
Código:
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE= -11
STD_ERROR_HANDLE = -12

FOREGROUND_BLUE = 0x01 # text color contains blue.
FOREGROUND_GREEN= 0x02 # text color contains green.
FOREGROUND_RED  = 0x04 # text color contains red.
FOREGROUND_INTENSITY = 0x08 # text color is intensified.
BACKGROUND_BLUE = 0x10 # background color contains blue.
BACKGROUND_GREEN= 0x20 # background color contains green.
BACKGROUND_RED  = 0x40 # background color contains red.
BACKGROUND_INTENSITY = 0x80 # background color is intensified.

import ctypes

std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

def set_color(color, handle=std_out_handle):
    """(color) -> BOOL
    
    Example: set_color(FOREGROUND_GREEN | FOREGROUND_INTENSITY)
    """
    bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
    return bool

 Aunque no logro entenderlo, qué hacen exactamente las variables STD_OUTPUT_HANDLE y demás? Se que las otras son para colores, y después por lo visto ctypes.windll.kernel32 es para acceder a una función del kernel32. el identificador 'bool' es obligatorio? Ahora voy a averiguar sobre GetStdHandle, a ver si logro entenderlo u.u

 Alguien que sepa sobre lo de las teclas? n.n

EDIT (numero 500millones): El tema de los códigos hexadecimales, cada dígito hexadecimal corresponde a un número y a un fondo? O 2 dígitos hexadecimales tienen un estándar?
 Según el código, 0x80 intensifica el fondo, pero pruebo y no logro entender que es lo que realmente hace. :\
 
16  Programación / ASM / Salto de línea (fasm16) y algo mas je en: 23 Agosto 2011, 03:31 am
 Qué tal gente? Estaba INTENTANDO hacer un programa que muestre "hola mundo", y en la línea siguiente que muestre "presione una tecla para continuar", y espere que se ingrese una tecla. Inicialmente había hecho esto

Código:
org	100h
use16

MOV      AH,9
MOV      DX,Texto
INT       21h             ;Muestro "Hola mundo!"
MOV      DX,Pausa
INT        21H            ;Muestro "Presione una tecla para continuar"
MOV      AH,1            ;Espero el ingreso de una tecla
INT        21H
INT        20h

Texto db 'Hola mundo!', 24h
Pausa db 'Presione una tecla para continuar.', 24h

Ahora, el mensaje "Presione una tecla para continuar" me aparece pegado al texto. La idea era que me quedara en la línea de abajo. Así que conté la cantidad de carácteresde "Hola mundo!", y la reste a la cantidad de columnas. Me dió 74, así que quise poner 74 espacios después del "Hola mundo!" asi el mensaje de pausa aparecía en la línea de abajo, intenté:

Código:
org 100h
use16

MOV      DX,Texto
MOV      AH,9
INT        21H
JMP        Espacios

Espacios:
MOV     DX,Espacio
MOV     CX,4A
INT       21h
DEC      CX
LOOP     Espacios
JMP       Pausa

Pausa:
MOV     AH,1
INT      21h
INT      20h


O sea, la idea es que inicie CX en 74, y vaya decrementando, y por cada ciclo, agregue un espacio. Al llegar a los 74, saltaría a la segunda línea y mostraría eso :P
(SI, soy un asco para esto)
La cosa es que tampoco me funciona así. Me estoy guiando por manuales viejos les aviso n.n

 Y también vi algo de "salto de línea" que tenía que ponerle 0D 0A al final del texto del que saltaría a la otra línea, y me tira sintáxis inválida :(

 Si alguien me puede decir como hacer funcionar eso, lo agradecería u.u
17  Programación / Scripting / Python: Syntax error en "def" o_o en: 8 Agosto 2011, 22:38 pm
 De nuevo yo con mis problemas raros, estoy usando IDLE, estaba probando el siguiente código (Da las raíces de una ecuación cuadrática, y muestra los pasos para hacerla), y realmente, andaba todo bien, iba editando la funcion LinealStep (Que en el código se ocupa de mostrar el paso por paso), y de repente el programa empezó a tirar "Syntax Error", en algo donde no había tocado absolutamente nada. Me marca "def". Y me marca siempre uno. No sé sinceramente cuál es el error sintáctico acá. Se que no tiene que ver con identación (O al menos no me dice eso):

Código:
# -*- coding: cp1252 -*-

from os import system
from cmath import sqrt

def Lineal(a, b, c):
        a               = float(a)
        b               = float(b)
        c               = float(c)
        bc              = b ** 2.0
        bcstr           = str(bc)
        
        Disc            = bc - 4.0 * a * c
        DiscStr         = str(Disc)
        DiscStr2        = 'bc - 4.0 * a * c'
        
        Sqr_Res         = sqrt(Disc)
        Sqr_ResStr      = str(Sqr_Res)
        Sqr_ResStr2     = 'R2(bc - 4.0 * a * c)'
        
        NEG_Res         = -b - Sqr_Res / (2.0 * a)
        rNEG_Res        = abs(NEG_Res)
        
        POS_Res         = -b + Sqr_Res / (2.0 * a)
        rPOS_Res        = abs(POS_Res)
        
        print ' '
        print 'Fórmula usada: -b +- R2 <b^2 - 4 * a * c>'
        print '                        -----------------'
        print '                             2 * a      '

        LinealStep(a, b, c, bc, bcstr, Sqr_Res)

        print 'X1 = ', rPOS_Res
        print 'X2 = ', rNEG_Res

def LinealStep(a, b, c, bc, bcstr, Sqr_Res):

        Astr, Bstr, Cstr, BCstr = str(a), str(b), str(c), str(bc)
        print 'Paso 1) Implementar fórmula'
        print 'Paso 2) Reemplazar:'
        print ' a por ', Astr
        print ' b por ', Bstr
        print ' c por ', Cstr

        print 'Quedando asi la formula: ', Bstr, ' +- R2<', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr, '>'
        print ' '* 36, '-' * 25
        print ' '* 45, '2 * ', Astr

        print 'Resolviendo interior de la raiz(Discriminante): '
        print ' ', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr
        print ' ', BCstr, ' + ', str((4 * a) * c)
        print ' ', str(bc + (4 * a) * c), ' '

        print 'Ahora, se calcula la raiz cuadrada de ', str(bc + (4 * a) * c)
        print 'R2<', str(bc + (4 * a) * c, ' = ', Sqr_Res

##ACÁ ME TIRA ERROR MARCANDO "def", pero a veces lo marca en los otros def
def Menu():
        TCuad           = raw_input('Coeficiente de termino cuadratico(a): ')
        TX              = raw_input('Segundo coeficiente(b): ')
        TIndep          = raw_input('Término independiente(c): ')
        print           'La ecuacion quedaria de la siguiente manera: '
        print           int(TCuad), 'X^2 + ', int(TX), 'X + ', int(TIndep)
        Next            = raw_input('Presione enter para hallar raíces: ')
        Lineal(TCuad, TX, TIndep)

Menu()


EDIT: Y ahora, saqué la función Menu, y me marca error en el nombre de la variable TCuad, dejo el código de esa última parte:

Código:
def LinealStep(a, b, c, bc, bcstr, Sqr_Res):

        Astr, Bstr, Cstr, BCstr = str(a), str(b), str(c), str(bc)
        print 'Paso 1) Implementar fórmula'
        print 'Paso 2) Reemplazar:'
        print ' a por ', Astr
        print ' b por ', Bstr
        print ' c por ', Cstr

        print 'Quedando asi la formula: ', Bstr, ' +- R2<', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr, '>'
        print ' '* 36, '-' * 25
        print ' '* 45, '2 * ', Astr

        print 'Resolviendo interior de la raiz(Discriminante): '
        print ' ', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr
        print ' ', BCstr, ' + ', str((4 * a) * c)
        print ' ', str(bc + (4 * a) * c), ' '

        print 'Ahora, se calcula la raiz cuadrada de ', str(bc + (4 * a) * c)
        print 'R2<', str(bc + (4 * a) * c, ' = ', Sqr_Res


TCuad           = raw_input('Coeficiente de termino cuadratico(a): ')
TX              = raw_input('Segundo coeficiente(b): ')
TIndep          = raw_input('Término independiente(c): ')
print           'La ecuacion quedaria de la siguiente manera: '
print           int(TCuad), 'X^2 + ', int(TX), 'X + ', int(TIndep)
Next            = raw_input('Presione enter para hallar raíces: ')
Lineal(TCuad, TX, TIndep)

Me marca en rojo TCuad.  Qué onda? O sea, no hay problemas de identación, no es palabra reservada, y me anduvo perfecto :\ se me empezó a buguear con el def de las funciones, saco la función Menu y me tira error en eso u.u


Desde ya muchas gracias de antemano n.n
18  Programación / Scripting / Unindent doesnt blabla en Python, pero no veo donde está el error :\ en: 2 Agosto 2011, 01:15 am
 O hay algo que estoy pasando por alto, o algo funca mal, me tira "IdentationError: Unindent doesnt match any outer identation level", es decir, que no encaja con ningún otro nivel de identación. Estoy pensando que es algún tipo de problema con el editor de texto, verán acá si les pongo el código me aparecen las cosas con una identación DIFERENTE a la que veo yo en mi editor (notepad++), según donde lo veo, está todo identado como se debe. Les dejo el código, el txt y la imágen de como lo veo yo.
EDIT: El error está en la línea 59, pero miren la imágen porque el código está mal identado, no es como lo tengo yo en m txt.
Código:
Código:
import marqlib
from random import randint

RondasJugadas = 0
PCGanadas = 0
UsuariosGanadas = 0
gDTj = '>8'
gITj = '8<'
gPr = '[]'
gPl = '#'

def Clean():
    system('cls')

def Tabla(uGanadas, pGanadas, rJugadas, uObjeto, pObjeto):
    print 'Rondas jugadas: ', rJugadas
    print 'Usuario: (', uObjeto, '): ', uGanadas
    print 'PC: (', pObjeto, '): ', pGanadas
    Next = raw_input()
    Clean()
  
def Presentacion():
    system('color 1f & cls')
    marqlib.DAI_Marq(' ', 'Piedra, Papel, O Tijera!', 25, 1, 1, 0.1)
 
def EleccionPC():
    ePC = randint(1, 3)
    return ePC

def Rest(Val, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto):
   if Val == 0:
      print 'Empate!'
      Tabla(UsuarioGanadas, PCGanadas, RondasJugadas, pObjeto, uObjeto)
   elif Val == 1:
       Tabla(UsuarioGanadas, PCGanadas, RondasJugadas, pObjeto, uObjeto)
   elif Val == 3:
       print 'Ganador: USUARIO!'
       Tabla(UsuarioGanadas, PCGanadas, RondasJugadas, Usuario_Objeto, PC_Objeto)
   elif Val == 4:
       print 'Ganador: PC'
       Tabla(UsuarioGanadas, PCGanadas, RondasJugadas, Usuario_Objeto, PC_Objeto)

def Jugada(Usuario_Objeto, Usuario_Opcion, PC_Opcion, PC_Objeto):
  while PCGanadas <= 2 or UsuarioGanadas <= 2:
    RondasJugadas += 1
    if Usuario_Opcion == PC_Opcion:
    Rest(0, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    elif Usuario_Opcion == 1 and PC_Opcion == 2:
    PCGanadas += 1
    Rest(1, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    elif Usuario_Opcion == 1 and PC_Opcion == 3:
    UsuarioGanadas += 1
    Rest(1, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    elif Usuario_Opcion == 2 and PC_Opcion == 1:
    UsuarioGanadas += 1
    Rest(1, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    elif Usuario_Opcion == 2 and PC_Opcion == 3:
    PCGanadas += 1 #LA LINEA QUE SIGUE ES LA 59.
         Rest(1, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    elif Usuario_Opcion == 3 and PC_Opcion == 2:
    UsuarioGanadas += 1
         Rest(1, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    elif Usuario_Opcion == 3 and PC_Opcion == 1:
    PCGanadas += 1
    Rest(1, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
  if PCGanadas == 2:
    Rest(4, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
MenuDeJuego()
  elif UsuarioGanadas == 2:
    Rest(3, PCGanadas, UsuarioGanadas, RondasJugadas, PC_Objeto, Usuario_Objeto)
    MenuDeJuego()

def MenuDeJuego():
    PCOp = EleccionPC()
    mOp = raw_input('Piedra(1), Papel(2), o Tijera(3)? ')
    if PCOp == 1:
        Obj = gPr
    elif PCOp == 2:
        Obj = gPl
    elif PCOp == 3:
        Obj = gDTj
    OpcionUsuario(mOp, PCOp, Obj)

def OpcionUsuario(Opcion, PCOp, Obj):
    if Opcion > 3:
        print 'Error. Opcion incorrecta'
   break
    if Opcion == 1:
        ObjetoElegido = gPr
   Jugada(ObjetoElegido, Opcion, PCOp, Obj)
    elif Opcion == 2:
        ObjetoElegido = gPl
   Jugada(ObjetoElegido, Opcion, PCOp, Obj)
    elif Opcion == 3:
        ObjetoElegido = gITj
        Jugada(ObjetoElegido, Opcion, PCOp, Obj)

Presentacion()
MenuDeJuego()

Ven ahí que la línea 59 (precedida por mi comentario en el código) se ve con otra identación, errónea según mi entender. Pero yo en mi editor de texto la veo de la siguiente manera:
http://imageshack.us/photo/my-images/807/asden.jpg/

Fíjense que la línea 59 está identada tal cual como las anteriores, y el error sale justo en esa línea, y en caso de que la identación esté mal, por qué no salió en las anteriores si están identadas de la misma forma? :\

Sinceramente no veo porque el error está en esa línea que es igual a las otras.
Gracias de antemano por la ayuda :) Por si influye en algo, uso Python2.7.

Saludos, y gracias por cualquier ayuda n.n

PD: El código subido acá no está identado de la misma forma que en mi editor de textos, asi que es mejor guiarse por la imágen :S
19  Programación / ASM / Duda sobre modo :P en: 18 Julio 2011, 00:43 am
Tengo una duda, no logro entender esto:
 Yo para usar ASM en WinXP, SI O SI tengo que usar ASM de 32bits (eso de modo protegido) sin interrupciones y eso? O puedo usar ASM 16bits en modo real?
 En caso de poder usar 16bits, se pueden crear con MASM? O tengo que usar otro?
Leí, y me bajé el TASM jajaj, es viejo pero bueno :P estoy intentando aprender :P
20  Programación / Programación C/C++ / Ayuda [Programa SUPERBÁSICO, aprendiendo] en: 12 Julio 2011, 01:53 am
Simplemente, leyendo un manual, y practicando de todas las maneras que se me ocurren, NO me sale un programa tan básico como este (El objetivo es pedir un nombre, un edad y mostrarlas. si, no tiene sentido, pero es para practicar). La idea es que para mostrarlos, llame a una funcion, y la idea es que lo haga 10 veces xD. En fin, me tira 500mil errores, y no llego a entender dónde me equivoco. Es mi primer programa que hago, asi que es un desastre seguramente, no se suiciden al verlo ni me insulten jaja.

Citar

#include <iostream.h>

char Nombre[30],RetornoMD;
char Edad[2];

void MostrarDatos(char N, int E);


int main() {
    //Pedir nombre
    cout << "Ingrese nombre su nombre: " <<endl;
    cin >>Nombre;
    cout << "Ingrese su edad: " << endl;
    cin >> Edad;
      for (int count = 1; count = 10; count = i++);
      MostrarDatos(Nombre, Edad);
    return 0;
 }
 
void MostrarDatos(char N, char E) {
     cout << "Su nombre es: " << N << endl;
     cout << "Usted tiene " << E << " años" << endl;
      }



Desde ya ES UN DESASTRE, pero es lo que intento. Y otra cosa, si la función es void, no tengo que poner el return, no?xD

Tengo 500mil errores, pero bueno n.n espero que un alma generosa me diga algún consejito n.n

Gracias de antemano n.n un abrazo.

USO DEV-C++ :P
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines