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ú

Mensajes - Poyoncio

#181
Ami me interesa el tema, no aun, no tengo suficientes conociemientos (me quedan muchos años antes de tocar firmwares :P) pero creo que seria interesante ir todos aprendiendo un poco a cerca del tema, si que es cierto que no habria mucho movimiento, pero yo creo que a la gente le interesaria bastante el tema y se animarian, almenos a troyanizar firmwares ;-) aunque igual tardas 1 año o mas en hacer solo eso :laugh:.
#182
Cita de: ivancea96 en 11 Septiembre 2016, 21:56 PM
Es recomendable utilizar las de C++, pero normalmente se pueden utilizar también las de C, stdlib.h y etc eh? No hay problema en compilar eso.
A pues nose, ami me daban errores cuando comence (hace 2 meses o menos) por eso ahora aunque casi nunca las use les tengo un poco de tirria, estuve como 2 dias con el mismo error  :laugh: me volvi loco
#183
Cita de: sanxez1 en 11 Septiembre 2016, 21:48 PM
estoy en c++ y siempre he utilizado las librerías stdio y stdlib, uso printf porque me resulta más fácil
Pues nose, si siempre has usado librerias stdio y stdlib nose como te han compilado, como te digo usa cstdio y cstdlib, y lo de printf, precisamente cout es mas facil. No hay que declarar el tipo de dato que vas a mostrar pero eso ya enfuncion de gustos.

Saludos y haznos caso, sino, no se compilara nada
#184

Tu problema es que no sabes en que codigo estas. Iostream es una libreria de C++ y stdlib y stdio de C, por tu code parece que estas en C porque pones printf .... asi que crea un archivo y ponle el code en C que te he puesto y lo guardas como fichero.c y lo compilas.

Prueba este codigo si estas en C :

#include <stdio.h>
#include <stdlib.h>
#include <allegro.h>


int iniciar();
void realizar_juego();
void terminar();

int iniciar(){
allegro_init();
install_keyboard();
set_color_depth(16);
if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)<0){
printf("error al iniciar el modo grafico\n");
allegro_exit();
exit(-1);
}
}

void terminar(){
allegro_exit();
}
int main(){
iniciar();
realizar_juego();
terminar();
}
END_OF_MAIN();
void realizar_juego(){

BITMAP *nave;
PALETTE paleta;
int x,y, x_anterior, y_anterior;
BITMAP * buffer;


nave=load_bitmap("C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", paleta);
set_palette(paleta);
if (nave==NULL) terminar();
buffer=create_bitmap(nave->w,nave->h);
clear (buffer);
if (buffer==NULL) terminar();
x=SCREEN_W/2;
y=SCREEN_H/2;

while (!key[KEY_ESC]){

if (key[KEY_UP,KEY_W])
y--;
if (key[KEY_DOWN,KEY_S])
y++;
if (key[KEY_LEFT,KEY_A])
x--;
if (key[KEY_RIGHT,KEY_D])
x++;

if (x<0) x=x_anterior;
if (x>SCREEN_W-nave->w) x=x_anterior;
if (y<0) y=y_anterior;
if (y>SCREEN_H-nave->h) y=y_anterior;
if ((x_anterior!=x) || (y_anterior!=y)){
blit (buffer,screen, 0, 0, x_anterior, y_anterior,buffer->w,buffer->h);
blit (screen,buffer,x,y,0,0,buffer->w,buffer->h);
draw_sprite(screen,nave, x, y);
}
x_anterior=x;
y_anterior=y;


}
}



Y este otro si estas en C++
Código (cpp) [Seleccionar]

#include <cstdio.h>
#include <cstdlib.h>
#include <allegro.h>
#include <iostream>
using namespace std;
int iniciar();
void realizar_juego();
void terminar();

int iniciar(){
allegro_init();
install_keyboard();
set_color_depth(16);
if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)<0){
cout << "Error al iniciar el modo grafico" << endl;
allegro_exit();
exit(-1);
}
}

void terminar(){
allegro_exit();
}
int main(){
iniciar();
realizar_juego();
terminar();
}
END_OF_MAIN();
void realizar_juego(){

BITMAP *nave;
PALETTE paleta;
int x,y, x_anterior, y_anterior;
BITMAP * buffer;


nave=load_bitmap("C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", paleta);
set_palette(paleta);
if (nave==NULL) terminar();
buffer=create_bitmap(nave->w,nave->h);
clear (buffer);
if (buffer==NULL) terminar();
x=SCREEN_W/2;
y=SCREEN_H/2;

while (!key[KEY_ESC]){

if (key[KEY_UP,KEY_W])
y--;
if (key[KEY_DOWN,KEY_S])
y++;
if (key[KEY_LEFT,KEY_A])
x--;
if (key[KEY_RIGHT,KEY_D])
x++;

if (x<0) x=x_anterior;
if (x>SCREEN_W-nave->w) x=x_anterior;
if (y<0) y=y_anterior;
if (y>SCREEN_H-nave->h) y=y_anterior;
if ((x_anterior!=x) || (y_anterior!=y)){
blit (buffer,screen, 0, 0, x_anterior, y_anterior,buffer->w,buffer->h);
blit (screen,buffer,x,y,0,0,buffer->w,buffer->h);
draw_sprite(screen,nave, x, y);
}
x_anterior=x;
y_anterior=y;


}
}


#185
Cita de: ivancea96 en 11 Septiembre 2016, 21:27 PM
El primero cierra el if, el segundo cierra el while y el tercero cierra la función.
Es verdad, no havia visto el if disculpa ;)
#186
Cita de: ivancea96 en 11 Septiembre 2016, 21:18 PM
Ambos sirven, tanto \ como /.
No sobra. Hay 2, uno para el while y otro para la función.

Y sí, cstdlib y cstdio.


Si dices que el programa te ha compilado bien: Por si acaso, borra el ejecutable y compila de nuevo.
Hecho eso, prueba de nuevo lo de los cout, poniéndo uno al principio, para asegurarte de que al menos comienza el programa.

Lo he vuelto a mirar y hay 3 fijate:
Código (cpp) [Seleccionar]
 }
 x_anterior=x;
 y_anterior=y;
 
 
}
}






Me estoy mirando el code de nuevo, tienes un lio tremendo con C y C++ usas stdlib y stdio, ademas de iostream, y luego pones printf.
Podrias especificar en que lenguaje estas programando? Porque alomejor lo que tienes que hacer es quitar el iostream y arreglar los errores de syntaxis y ya estas
#187
Para empezar, cuando cierras los { } de la funcion iniciar, al final hay un } de mas   (justo encima de terminar() te falta poner en END_OF_MAIN( ) el caracter ";"
Luego cuando indicas el valor de nave si estas en windows tendrias que tener \\ y no /  (si se trata de trabajar con directorios en windows)
Y en la ultima linea te sobra un }  

Para la proxima, pon las etiquetas Geshi(C++) y te podre indicar la linea exacta
PD: Ademas las librerias que tienes stdio y stdlib tendrian que ser cstdio y cstdlib (de esto no estoy muy seguro, pero creo que es asi)

Saludos
#188
Programación C/C++ / Re: Sockets linux
11 Septiembre 2016, 20:13 PM
Bueno estuve buscando un poco, y el problema no es tan sencillo, el problema esta en que no defini 2 variables de la estructura server_addr

me falta por declarar:
Código (cpp) [Seleccionar]
server_addr.sin_addr = *((struct in_addr *)he->h_addr);  
bzero(&(server_addr.sin_zero),sizeof(server_addr); //Este lo tengo a medias, si no lo entiendo mal rellena con ceros server_addr.sin_zerp (no lo tengo demasiado claro

El problema es que busco codigos similares y cada uno me sale distinto y ya nose que puedo tener, mi idea es poner server_addr.sin_addr = a la ip pero hay que hacer varios procedimientos que no entiendo

La parte de bzero tampoco lo tengo del todo claro, porque en el codigo original ponia en vez de poner server_addr ponia solo 8 y me ha dejado sin entender 
#189
Programación C/C++ / Re: Sockets linux
11 Septiembre 2016, 18:57 PM
Cita de: ivancea96 en 11 Septiembre 2016, 18:50 PM
En la estructura sí. Mira esta página, por ejemplo: http://es.tldp.org/Tutoriales/PROG-SOCKETS/prog-sockets.html

Ve directamente al código del cliente, abajo, si quieres.
Si, esa pagina la e estado mirando un rato, ahora e un codigo de otra pagina, ya se mas o menos la estructura basica de los sockets, asi que moldeare un poco a mi gusto y ya lo pasare por aqui  ;-)
#190
Programación C/C++ / Re: Como estudiar C++?
11 Septiembre 2016, 18:25 PM
Yo aprendi de un libro y si que es verdad que es mas aburrido, si no has programado nunca te recomendaria que te leyeras algun libro corto de fundamentos de programacion en C++ y luego te miraras algun curso que hay por internet, estos por ejemplo estan bastante bien https://www.youtube.com/watch?v=ofemmXa_M5o