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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / Java / Juego de programación [Entrad y participad] en: 25 Julio 2013, 18:38 pm
Buenas tardes:

Yo soy programador C++ (en realidad esto es porque es el lenguaje que normalmente utilizamos en la universidad) pero últimamente me he estado pasando por el foro de Java y la verdad es que noto que hay muy poca actividad (no sé si será por vacaciones).

Por tanto, para animar la cosa, propongo un juego: Se plantea un minijuego que se ha de programar en Java. Todo el que participe tendrá que programar el juego por su cuenta y podrá ir preguntando dudas en este mismo post. Las dudas serán tanto de conceptos de Java como de puntos del enunciado que no se hayan comprendido correctamente, pero nunca se podrá preguntar "Cómo hago esto o cómo hago lo otro" porque la idea es que cada uno lleve a la práctica su originalidad y habilidad en la programación. El que antes resuelva y coloque una solución correcta (el juego funciona y sin errores) gana y es el encargado de proponer el siguiente minijuego a programar.

Condiciones: El enunciado debe ser claro y conciso. Se deberá colocar el nombre del videojuego en negrita y con un tamaño de letra de 22 (esto es para que los participantes no tengan que leer todos los mensajes escritos y visualicen fácilmente cuál es el último minijuego propuesto) y junto a ello ira la descripción con sus condiciones. El usuario que propone el minijuego debe estar atento para solucionar dudas, si bien las dudas de programación debemos ayudar a resolverlas entre todos los participantes, las dudas de enunciado corresponden principalmente al que lo ha propuesto.

Recomendación: Personalmente recomendaría que el entorno gráfico fuera opcional por no hacerlo complejo y largo, lo más óptimo en los videojuegos que lo requieran sería utilizar carácteres del teclado, pero lo dejo a la elección de cada uno.

También se puede dar un tiempo límite para solucionarlo, tras el cuál, si no se ha posteado una solución correcta el autor del minijuego puede colocar la solución y darle el turno al usuario que más se haya acercado.

La idea de esto es tanto mejorar nuestras habilidades de programación como entretenernos programando videojuegos, así que os animo a que participéis.

Comenzaré yo proponiendo un programa sencillo:

Números primos: Jugador vs Máquina

Descripción: Este videojuego tiene 2 niveles:

Nivel 1: El juego imprime en pantalla un número primo comenzando desde el "1" y el jugador debe escribir el siguiente. Después le toca al programa imprimir el tercer número primo y a continuación al jugador y así sucesivamente. Cuando le toca al jugador escribir un número primo tiene 5 segundos para hacerlo.

Nivel 2: El juego imprime un número primo y el jugador 3 seguidos. Cuando le toca al jugador escribir un número primo tiene 3 segundos para hacerlo (por cada número).

Para que el jugador gane se debe llegar al número primo "401" (OJO: le puede tocar imprimirlo por pantalla al jugador o al programa). Aqui os dejo una tabla de números primos (solo tened en cuenta hasta el 401): http://www.disfrutalasmatematicas.com/numeros/primos-tabla.html


Condiciones:

1- Se debe mostrar en pantalla claramente cuándo le toca al jugador escribrir el siguiente número primo.
2- Se debe mostrar en pantalla claramente al menos el último número primo que se ha preguntado.


Opcional: Podéis añadir "vidas" si queréis, es decir, el jugador puede equivocarse hasta 3 veces antes de perder la partida.

Es un juego muy sencillo que se puede hacer en un rato, pero aún así, si nadie postea una solución correcta esperaré 7 días antes de solucionarlo (hasta el jueves 1 de agosto).


Un saludo.
2  Programación / Java / Cambiar visibilidad de un atributo/método heredado en: 22 Julio 2013, 20:43 pm
Buenas tardes:

No tengo muy claro cómo varía la visibilidad en un método o atributo heredado:

public - protected - nivel de paquete - private

¿Se puede modificar de derecha a izquierda o al contrario?.

¿Esto se hace automáticamente al redefinirlo?, es decir:

Código
  1. public class ClasePadre {
  2. private int x;
  3. ...
  4. }
  5.  
  6. public class ClaseHija extends ClasePadre {
  7.  
  8. int x;
  9. ...
  10. }

¿Ahi la visibilidad ha cambiado de privado a nivel de paquete en ClaseHija o se hace de otro modo?.

Gracias. Un saludo.
3  Sistemas Operativos / GNU/Linux / No existe el archivo o el directorio en: 30 Septiembre 2012, 15:39 pm
Hola, buenas tardes:

Estoy intentando ejecutar una aplicación desde la consola de comandos y me sale el mensaje "bash: ./xgcc: no existe el archivo o directorio". Estoy en el directorio donde se encuentra tal aplicación (además me sale con el comando "ls"). Cosas que he probado:

-Modo root (superusuario).
-He escrito el comando correctamente (el nombre de la aplicación aparece todo en minúsculas).
-He cambiado los permisos de la aplicación al 100% con "chmod 777 xgcc".
-En otro PC si me funciona sin ningún problema (con la misma versión de Ubuntu).

La aplicación que estoy intentando ejecutar es el compilador xgcc con el siguiente comando:
"xgcc -L. programa1.c -o p1" pero ya he comentado que en otro ordenador me funciona perfectamente. Uso Ubuntu 12.04 actualizado.

¿Alguien sabe cuál podría ser el problema?, gracias, saludos.
4  Programación / Programación C/C++ / Leer numero seguido de carácter en: 27 Septiembre 2012, 17:03 pm
Hola, buenas tardes:

Estoy intentando solucionar un problema en el cual me introducen X números seguidos de Y caracteres sin espacio u otro tipo de separación entre ellos, ejemplo: 12345ABC

Guardo el número en una variable de tipo "long int", el problema es que el último dígito se pierde, es decir, con nuestro ejemplo en la variable se almacenaría solo 1234 pero no el 5. Sé que podría guardarlo todo en una cadena de caracteres y luego analizarlo para asignar al entero solo el número, pero quisiera saber si se puede solucionar de este modo, guardándolo directamente en el entero de alguna forma sin perder ningún dígito.

¿Alguna idea para leer el número entero cuando lo siguen caracteres?.

Saludos.
5  Programación / Programación C/C++ / Funciones virtuales en: 29 Julio 2012, 13:04 pm
Buenas, tengo dos dudillas acerca de las funciones virtuales, a ver si me las podéis resolver:

Código
  1. class ClaseA
  2. {
  3. public:
  4.   virtual void funcion () {};
  5.  
  6. };
  7.  
  8. class ClaseB : public ClaseA
  9. {
  10.   void funcion () {};
  11. };
  12.  
  13. int main ()
  14. {
  15.   ClaseA *objeto = new ClaseB;
  16.  
  17. }

Hemos creado un objeto de tipo "ClaseA" pero hemos reservado memoria del tamaño "ClaseB". Y al declarar "funcion" como virtual, cada vez que la llamemos estaremos accediendo a la que hay en la clase que hereda y no a la de la clase base. Pero, ¿de qué nos sirve exactamente esto?. ¿No sería lo mismo que declarar el objeto de tipo ClaseB y sobrecargar la función sin añadir "virtual"?:

Código
  1. class ClaseA
  2. {
  3. public:
  4.   void funcion () {};
  5.  
  6. };
  7.  
  8. class ClaseB : public ClaseA
  9. {
  10.   void funcion () {};
  11. };
  12.  
  13. int main ()
  14. {
  15.   ClaseB *objeto = new ClaseB; //Hemos sobrecargado "funcion" asi que se llamará a la de la clase que hereda
  16.  
  17. }


Y luego también he leído ejemplos en los que hace lo siguiente:

Código
  1. class ClaseA
  2. {
  3. public:
  4.   virtual void funcion () {};
  5.  
  6. };
  7.  
  8. class ClaseB : public ClaseA
  9. {
  10.   void funcion () {};
  11. };
  12.  
  13. int main ()
  14. {
  15.   ClaseB *objeto = new ClaseB;
  16.  
  17. }

Es decir, declaramos un objeto de tipo "ClaseB" y reservamos memoria también "ClaseB", sin embargo usa la función "virtual" en la clase base. ¿Por qué?, ¿para qué añadir "virtual" si sin ella automáticamente se sobrecarga la función y se llama a la de la clase que hereda (como en el ejemplo anterior)?.

Gracias y saludos.
6  Programación / Programación C/C++ / Linker en VC++ en: 24 Julio 2012, 15:16 pm
Buenas:

Seré muy patoso pero acabo de instalar VC++ y no veo el linker por ningún lado para agregar nuevas librerías.

¿Alguien me puede indicar?, gracias.
7  Programación / Programación C/C++ / Tamaño de array através de variable en: 19 Julio 2012, 23:31 pm
Buenas:

Quería saber si hay alguna forma de definir el tamaño de un array bidimensional mediante variables e inicializarlo. Ejemplo:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.  
  7.  
  8.    int columna = 3;
  9.    int linea = 3;
  10.    int array[columna][linea] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
  11.    return 0;
  12. }
  13.  

Esto da el siguiente error: error: variable-sized object 'array' may not be initialized|

Sin embargo si no lo inicializo el mismo código funciona bien:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.  
  7.  
  8.    int columna = 3;
  9.    int linea = 3;
  10.    int array[columna][linea];
  11.    return 0;
  12. }
  13.  

O si lo inicializo pero defino el tamaño del array mediante valores numéricos y no variables también funciona bien:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.    int array[3][3] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
  7.    return 0;
  8. }
  9.  

Entiendo que si el tamaño lo definimos con variables no es lógico que lo inicialicemos porque al variar el valor de la variable y definir de nuevo el array pueden no caber todos los elementos. Pero quizá haya algún "truquillo" puesto que la idea es aumentar el tamaño de los array (no en tiempo de ejecución logicamente) y eso no supondría ningún problema al compilar.

¿Alguna idea para que funcione el primer ejemplo?. Gracias.
8  Programación / Programación C/C++ / Pasar una clase a otra en: 13 Julio 2012, 11:16 am
Buenas:

Bien sabemos que en C se puede hacer lo siguiente:

Código
  1. typedef struct {
  2. int x;
  3. int y;
  4. } Estructura1;
  5.  
  6. int main ()
  7. {
  8. Estructura1 *puntero = malloc (Estructura1);
  9. void* puntero_void = puntero; //El puntero void puede apuntar a la misma dirección que cualquier otro puntero
  10. puntero = puntero_void; //Y viceversa. Un puntero de un tipo puede apuntar a la misma dirección que un puntero void. Pero al hacer esto lo que conseguimos es darle una estructura a esa zona de memoria
  11.  
  12. return 0;
  13. }

Bien, ese último punto no consigo simularlo en C++, no consigo hacer que un puntero de tipo "Clase1" apunte a la misma dirección que un puntero de tipo "void".

¿Alguna idea?.

Saludos.
9  Media / Diseño Gráfico / Practicando PS: Hago firmas, fondos, logos... en: 26 Junio 2012, 00:03 am
Buenas:

Con el fin de practicar más a fondo photoshop, me ofrezco para hacer firmas, fondos, logos, banners, etc.

Advierto, mi nivel no es alto, así que no prometo nada, pero me defiendo lo suficiente como para hacer cosas decentes.

Con que me déis los siguientes datos me busco la vida:

1 - Tipo de imagen: Firma, logo, fondo para vídeo/presentación, banner, etc.
2 - Tamaño: Ancho x Alto píxeles.
3 - Alguna carácterística: personajes o efectos que querríais ver, texto o nick, etc.

Me gustaría ingeniármelas por mi cuenta pero también podéis apuntar más datos sin problema: colores, posiciones, estilos, etc.

Cuando lo tenga listo lo posteo. Saludos.
10  Informática / Hardware / Duda con un método de optimización de HD Intel Graphics en: 25 Junio 2012, 23:43 pm
Buenas:

Navegando por internet he encontrado la siguiente recomendación para aumentar el rendimiento de una tarjeta gráfica HD Intel Graphics:

Citar
Abre "ejecutar" y escribes los siguiente: "msconfig" (sin comillas) lo ejecutas y te vas a la pestaña "arranque" luego entras en "opciones avanzadas" y se abrira otra ventana y haces click en el cuadro "cantidad maxima de memoria" y aparecera la memoria RAM que tienes (no lo cambies) esto funciona para que tu ordenador utilise toda la memoria RAM.
Luego haces click en el cuadro "numero de procesadores" y pones la cantidad de nucleos que tiene tu procesador (normalmente los Intel Core i3, i5 y i7 tienen 2) una vez listo pones aceptar en todo y reinicias el ordenador.

Esto funciona para que tu PC lleve la RAM y el procesador mas rapido, en concecuencia una PC mas rapida, mas eficiente y mejor rendimiento en juegos.

El problema es que no tengo ni idea de qué se está haciendo realmente, ¿alguien me lo puede explicar?, ¿quizá algún tipo de overclocking?.

¿Con esto el PC podría sufrir algún tipo de daño?.

Gracias por adelantado. Saludos.
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines