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
1  Informática / Electrónica / Cuanto me cuesta y por donde empezar en: 18 Febrero 2013, 00:21 am
Saludos soy estudiante de ing de sistemas de primer semestre y Estoy interesado en la robotica pero me preguntaba donde conseguir las piezas que vaya necesitando aquí en Colombia(medellin) no tengo mucho dinero(no trabajo)

Estaba leyendo el libro "Robot Building for beginners" y llegue a la parte de las piezas y la verdad  no se donde puedo conseguirlas



tal vez otro libro sea mas adecuado ?

Este es el mercado libre de mi país http://www.mercadolibre.com.co/

saludos y gracias
2  Programación / Programación C/C++ / Comenzar con OpenGL o con un game engine? en: 24 Octubre 2012, 04:32 am
Saludos, Me preguntaba si es mas recomendable empezar con un game engine ya echo o con opengl directamente, tengo en mente usar ogre3D por que era multiplataforma. se que con el game engine las cosas seran rapidas y todo, pero lo que me interesa saber es cual es mas recomendable para novatos tengo tiempo para invertir. estaba pensando en openGL pero como plataformas de desarrollo que tengo en mente linux y android, entonces tendria que aprender opengl es y por que lo he visto este es muy diferente del opengl normal.

lo que quiero diseñar son juegos taticos anque esto esta muy lejor de la realidad.

por lo que investigue en google la gente se contradice mucho y quedo mas fundido sobre cual deberia aprender primero.
3  Programación / Programación C/C++ / [QT] mi programa no detecta que ago clik en: 13 Octubre 2012, 07:01 am
Saludos estoy aprendiendo QT y estaba viendo la clase QGraphicsItem y decidi hacer programa despues de un par de tutoriales pero cree un desastre,

lo que se supone que hace el programa es:
cuando doy click en un cuadrado este se borra y se acumulan 50 puntos, pero lo que tengo es un nuevo screensaver :laugh:


hghdjddjdjd.pro
Código:
#-------------------------------------------------
#
# Project created by QtCreator 2012-10-13T00:07:08
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = hghdjddjdjd
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    cuadrado.cpp

HEADERS  += mainwindow.h \
    cuadrado.h

FORMS    += mainwindow.ui

mainwindow.h
Código
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3.  
  4. #include <QMainWindow>
  5. #include <QtCore>
  6. #include <QtGui>
  7. #include "cuadrado.h"
  8.  
  9. namespace Ui {
  10. class MainWindow;
  11. }
  12.  
  13. class MainWindow : public QMainWindow
  14. {
  15.    Q_OBJECT
  16.  
  17. public:
  18.  
  19.  
  20.  
  21.    explicit MainWindow(QWidget *parent = 0);
  22.    ~MainWindow();
  23.  
  24. private:
  25.  
  26.  
  27.    Ui::MainWindow *ui;
  28.    QGraphicsScene *scene;
  29.    cuadrado *square[30];
  30.  
  31. };
  32.  
  33. #endif // MAINWINDOW_H
  34.  

cuadrado.h
Código
  1. #ifndef CUADRADO_H
  2. #define CUADRADO_H
  3. #include <QPainter>
  4. #include <QGraphicsItem>
  5. #include <QDebug>
  6.  
  7. class cuadrado : public QGraphicsItem
  8. {
  9. public:
  10.    cuadrado();
  11.  
  12.    QRectF boundingRect() const;
  13.    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
  14.  
  15.    int points;
  16.    bool Pressed;
  17.  
  18.  
  19. protected:
  20.     void mousePressEvent(QGraphicsSceneMouseEvent *event);
  21.     void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
  22.  
  23.  
  24. };
  25.  
  26. #endif // CUADRADO_H
  27.  

mainwindow.cpp
Código
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3.  
  4. MainWindow::MainWindow(QWidget *parent) :
  5.    QMainWindow(parent),
  6.    ui(new Ui::MainWindow)
  7. {
  8.    ui->setupUi(this);
  9.  
  10.    scene = new QGraphicsScene(this);
  11.    ui->graphicsView->setScene(scene);
  12.  
  13.  
  14.  
  15.    for (int i = 0; i < 29; i++) {
  16.  
  17.        square[i] = new cuadrado();
  18.        scene->addItem(square[i]);
  19.    }
  20.  
  21.  
  22. }
  23.  
  24. MainWindow::~MainWindow()
  25. {
  26.    delete ui;
  27. }
  28.  

cuadrado.cpp
Código
  1. #include "cuadrado.h"
  2.  
  3. cuadrado::cuadrado()
  4. {
  5.   Pressed = false;
  6.   points = 0;
  7.  
  8. }
  9.  
  10. QRectF cuadrado::boundingRect() const
  11. {
  12.    return QRectF(rand() % 1000,rand() % 500,100,100);
  13. }
  14.  
  15. void cuadrado::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
  16. {
  17.  
  18.    QRectF *rec = new QRectF;
  19.     *rec = boundingRect();
  20.  
  21.    QBrush brush (Qt::blue);
  22.  
  23.    painter->fillRect(*rec,brush);
  24.  
  25.    painter->drawRect(*rec);
  26.  
  27.   // update(); //aparente el esta tomando la orden como falsa ??
  28.  
  29.    if(Pressed) {
  30.        painter->eraseRect(*rec);
  31.        qDebug() << Pressed;
  32.        points += 50;
  33.    } else {qDebug() << Pressed;  }
  34.    update();
  35. }
  36.  
  37.  
  38.  
  39. void cuadrado::mousePressEvent(QGraphicsSceneMouseEvent *event)
  40. {
  41.    Pressed = true;
  42.    qDebug() << Pressed;
  43.    update();
  44.  
  45.    QGraphicsItem::mouseMoveEvent(event);
  46.  
  47. }
  48.  
  49. void cuadrado::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
  50. {
  51.    Pressed = false;
  52.    qDebug() << Pressed;
  53.    update();
  54.  
  55.    QGraphicsItem::mouseReleaseEvent(event);
  56. }
  57.  
  58.  
  59.  

main.cpp
Código
  1. #include "mainwindow.h"
  2. #include <QApplication>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    QApplication a(argc, argv);
  7.    MainWindow w;
  8.    w.show();
  9.  
  10.    return a.exec();
  11. }
  12.  

mainwindow.ui
Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ui version="4.0">
  3. <class>MainWindow</class>
  4. <widget class="QMainWindow" name="MainWindow">
  5.  <property name="geometry">
  6.   <rect>
  7.    <x>0</x>
  8.    <y>0</y>
  9.    <width>1280</width>
  10.    <height>720</height>
  11.   </rect>
  12.  </property>
  13.  <property name="windowTitle">
  14.   <string>MainWindow</string>
  15.  </property>
  16.  <widget class="QWidget" name="centralWidget">
  17.   <widget class="QGraphicsView" name="graphicsView">
  18.    <property name="geometry">
  19.     <rect>
  20.      <x>20</x>
  21.      <y>10</y>
  22.      <width>1241</width>
  23.      <height>641</height>
  24.     </rect>
  25.    </property>
  26.   </widget>
  27.  </widget>
  28.  <widget class="QMenuBar" name="menuBar">
  29.   <property name="geometry">
  30.    <rect>
  31.     <x>0</x>
  32.     <y>0</y>
  33.     <width>1280</width>
  34.     <height>16</height>
  35.    </rect>
  36.   </property>
  37.  </widget>
  38.  <widget class="QToolBar" name="mainToolBar">
  39.   <attribute name="toolBarArea">
  40.    <enum>TopToolBarArea</enum>
  41.   </attribute>
  42.   <attribute name="toolBarBreak">
  43.    <bool>false</bool>
  44.   </attribute>
  45.  </widget>
  46.  <widget class="QStatusBar" name="statusBar"/>
  47. </widget>
  48. <layoutdefault spacing="6" margin="11"/>
  49. <resources/>
  50. <connections/>
  51. </ui>
  52.  

aqui les dejo un archivo con todo el proyecto junto por si les es mas facil ayudarme asi :

http://www.mediafire.com/?8db8cetvm9xsfgs
4  Programación / Programación C/C++ / [source] traductor de mensajes en: 8 Octubre 2012, 07:33 am

hice un pequeño traductor en qt5(beta) para enviar mensajes secretos solo por diversion.

codigo : http://www.mediafire.com/?6jsd4jlan742lmu

Diganme si algo esta mal, eso me ayuda a mejorar.  :P

salu2.
5  Programación / Programación C/C++ / libreria para crear un bot en: 2 Octubre 2012, 07:56 am
Saludos,

Busco una manera de crear un bot (algo censillo solo un par de cliks en una pagina web) pero estoy en linux y solo encuentro referencias a winapi y c#.

para ser concreto necesito un bot que de clik en X parte de una web. no tengo idea del api de x11(ni siquiera estoy seguro si sirve para eso)
necesito algo que permita simular el moviento del raton.

si me pudieran ayudar con libreria que serviera para eso, Gracias.

6  Programación / Programación C/C++ / error compilando con glfw en: 1 Octubre 2012, 03:40 am
Saludos estaba empesando con opengl y tengo probelmas para compilar el primer ejemplo.  :-[

codigo que estoy usando
Código
  1. // Include standard headers
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. // Include GLEW
  6. #include <GL/glew.h>
  7.  
  8. // Include GLFW
  9. #include <GL/glfw.h>
  10.  
  11. // Include GLM
  12. #include <glm/glm.hpp>
  13. using namespace glm;
  14.  
  15. int main( void )
  16. {
  17. // Initialise GLFW
  18. if( !glfwInit() )
  19. {
  20. fprintf( stderr, "Failed to initialize GLFW\n" );
  21. return -1;
  22. }
  23.  
  24. glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
  25. glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
  26. glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
  27. glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  28.  
  29. // Open a window and create its OpenGL context
  30. if( !glfwOpenWindow( 1024, 768, 0,0,0,0, 32,0, GLFW_WINDOW ) )
  31. {
  32. fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n" );
  33. glfwTerminate();
  34. return -1;
  35. }
  36.  
  37. // Initialize GLEW
  38. if (glewInit() != GLEW_OK) {
  39. fprintf(stderr, "Failed to initialize GLEW\n");
  40. return -1;
  41. }
  42.  
  43. glfwSetWindowTitle( "Tutorial 01" );
  44.  
  45. // Ensure we can capture the escape key being pressed below
  46. glfwEnable( GLFW_STICKY_KEYS );
  47.  
  48. // Dark blue background
  49. glClearColor(0.0f, 0.0f, 0.3f, 0.0f);
  50.  
  51. do{
  52. // Draw nothing, see you in tutorial 2 !
  53.  
  54. // Swap buffers
  55. glfwSwapBuffers();
  56.  
  57. } // Check if the ESC key was pressed or the window was closed
  58. while( glfwGetKey( GLFW_KEY_ESC ) != GLFW_PRESS &&
  59.   glfwGetWindowParam( GLFW_OPENED ) );
  60.  
  61. // Close OpenGL window and terminate GLFW
  62. glfwTerminate();
  63.  
  64. return 0;
  65. }
  66.  
  67.  

Código:
g++ 1.cpp -I/usr/include -L/usr/lib -L/usr/lib64 -LGL -Lglew -Lglfw -Lglut
1.cpp: In function ‘int main()’:
1.cpp:25:21: error: ‘GLFW_OPENGL_VERSION_MAJOR’ was not declared in this scope
1.cpp:26:21: error: ‘GLFW_OPENGL_VERSION_MINOR’ was not declared in this scope
1.cpp:27:21: error: ‘GLFW_OPENGL_PROFILE’ was not declared in this scope
1.cpp:27:42: error: ‘GLFW_OPENGL_CORE_PROFILE’ was not declared in this scope


Código
  1. clang++ 1.cpp -I/usr/include -L/usr/lib -L/usr/lib64 -LGL -Lglew -Lglfw -Lglut
  2. 1.cpp:25:21: error: use of undeclared identifier 'GLFW_OPENGL_VERSION_MAJOR'
  3.        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
  4.                           ^
  5. 1.cpp:26:21: error: use of undeclared identifier 'GLFW_OPENGL_VERSION_MINOR'
  6.        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
  7.                           ^
  8. 1.cpp:27:21: error: use of undeclared identifier 'GLFW_OPENGL_PROFILE'
  9.        glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  10.                           ^
  11. 3 errors generated.


si pudieran ayudarme estaria agredecido.
estoy seguro de que glfw esta instalado, estoy usando gentoo.
7  Programación / Programación C/C++ / [C++] detectar una subida de nivel en: 19 Septiembre 2012, 00:00 am
Saludos, solo por diversion decidi empezar a realizar un rpg, pero tengo problemas para detectar en que lvl esta el personaje dependiendo de su experiencia. el codigo comentado es lo que se me ocurrio para detectar el nivel pero solo elimina los niveles superiores.

Código
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.  
  8. long int level[100];
  9. level[0] = 100;
  10. //long int xp = 0;
  11.  
  12. cout << "nivel " << 1 << " = " << 0 << endl;
  13.  
  14. //cin >> xp;
  15. int i = 0;
  16. for (i = 1; i < 100; i++) {
  17.  
  18.  
  19.  
  20. cout << "nivel " << i + 1 << " = " << level[i-1] << endl;
  21.  
  22.    level[i] = level[i-1] + level[i-1] * 0.2;  
  23.  
  24.  /* if (level[i] >=! xp) {
  25.  
  26. if (xp >= level[i] ) {
  27.  
  28.  
  29.  
  30. cout << level[i] << endl;
  31.  
  32.  
  33.  
  34. }
  35.  
  36. } */
  37.  
  38.  
  39. }
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  


Gracias de antemano.
8  Programación / Programación C/C++ / su opinion acerca de clang en: 27 Agosto 2012, 03:40 am
clang funciona en linux, BSD (FreeBSD lo usara como su compilador por defecto en su version 10), en otros *nix y windows(segun he visto en su pagina) su redimiento es por mucho superior a GCC y sus sintaxis es casi la misma, su soporte para C++ no esta bueno como el de GCC pero no estan muy lejos ademas su soporte para Objective-C/Objective-c++ es mejor y sus mensaje de error son mas claros , usteden creen que renplace por completo a GCC ?
9  Programación / Programación C/C++ / duda con flex y bison en: 27 Agosto 2012, 03:04 am
Saludos,
estoy aprendiendo flex y bison bajo c, pero me surge una duda, solo he visto lo basico de flex y me doy cuenta que es como un interprete (al estilo rails), es decir no puedo utilizarlo para traducir directamente el codigo que introduzca a c y luego compilar el codigo de c.  espero haberme expresado correctamente.
10  Programación / Programación General / Tutorial objective-c Linux/FreeBSD en: 12 Agosto 2012, 23:08 pm


Por que objective-c y no c++ ?

objective-c tiene muchas ventajas sobre c++ en el manejo de memoria,  pero la mas interesante que no trataremos por ahora es objective-c++ que permite combinar codigo de c++ dentro de objective-c.

como compilar ?


primero instalar

En FreeBSD instala : devel/gnustep


En linux depende de cada distro

en gentoo http://www.gentoo-wiki.info/GNUstep

en ubuntu es muy facil solo tienes que buscar los paquetes gobjc++ clang  y gnustep-devel en synaptic.

lamentablemente no tengo tiempo para probar con mas distros lo mejor seria revisar las respectivas wikis

modo general (hay otras maneras que veremos en otros tutos)

Crea un archivo llamado

GNUmakefile

y escribe en el lo siguiente


Código:
# Sample GNUmake file

include $(GNUSTEP_MAKEFILES)/common.make

APP_NAME = HelloWorld
HelloWorld_HEADERS =
HelloWorld_OBJC_FILES = hello.m
HelloWorld_RESOURCE_FILES =

include $(GNUSTEP_MAKEFILES)/application.make

ejecute en linux :

Código:
. /usr/share/GNUstep/Makefiles/GNUstep.sh (puede cambiar en cada distro lo mejor es usar "locate GNUstep.sh" )

En FreeBSD

Código:
. /usr/local/GNUstep/System/Library/Makefiles/GNUstep.sh  (probado en FreeBSD 9)

código de ejemplo

Código:
#import <Foundation/Foundation.h>


int main(int argc, char *argv[])
{

   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
   NSLog(@"yoxter te saluda");
 
   [pool drain];

return 0;
}

pondremos esta código en la misma carpeta que el GNUmakefile y lo nombraremos hello.m


ejecutaremos gmake en FreeBSD y make en Linux


si todo sale bien

podremos ejecutar

Código:
openapp ./HelloWorld

y debería salir algo así

Código:
2012-07-28 06:31:21.891 HelloWorld[10483] yoxter te saluda

Bueno hemos logrado compilar ahora lo mas importante explicar el código (espero explicarlo bien )

Código:
#import <Foundation/Foundation.h>

si bienes de C notaras que es como el #include, para los que no, esto lo que hace es incluir un archivo llamado Foundation.h dentro de nuestro archivo hello.m, el Foundation.h contiene un conjunto de funciones que ya fueron hechas por otra persona y que están lista para que las usemos.

Código:
int main(int argc, char *argv[]) { }

La función main (la función principal). es lo primero que se ejecuta en nuestro programa.
no quiero indagar mucho en esto de momento para no confundir, por ahora solo diré que "int argc, char *argv[]" son usadas para detectar argumentos pasado por la linea de comandos y que las llaves "{ }" existen para delimitar la función main.

Código:
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

 [pool drain];

También funcionan como llaves para delimitar,


lo que hace básicamente es

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init] le pide a la computadora que le preste algo de memoria


y [pool drain] la devuelve una vez que no la necesita mas.


Código:
NSLog(@"yoxter te saluda");

si vienen de c/c++ esto es como un cout o un printf (mas parecido a este ultimo), para los que no, como se habrán dado cuenta lo que esto es mostrar por pantalla  una cadena de caracteres (string), "yoxter te saluda" puede ser cambiado por cualquier cosa

como habrán notado todas las acciones dentro del main terminan como un ;

Código:
return 0;

por tradición en unix cuando un programa ha sido ejecutado correctamente devuelve un 0 (y cunado se ejecuta mal cualquier otro numero dependiendo de donde se haya producido el error). notaran que este 0 no se muestra al ejecutar programa.

después de ejecutar el programa (sin haber ejecutado otro desde la terminal), ejecuta "echo $?" y veras el 0
puedes cambiar este numero por el que quieras,

Salu2

PD: esto debio publicarse antes pero lo olvide  :xD
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines